-
bup: It backs things up
=======================
for you, but we don't know why. It is also missing some
probably-critical features.
- - It requires python >= 2.4, a C compiler, and an installed git version >=
+ - It requires python >= 2.5, a C compiler, and an installed git version >=
1.5.3.1.
- It currently only works on Linux, MacOS X >= 10.4,
- Check out the bup source code using git:
- git clone git://github.com/apenwarr/bup
+ git clone git://github.com/bup/bup
- Install the needed python libraries (including the development
libraries).
apt-get install python-pyxattr python-pylibacl
apt-get install linux-libc-dev
- Substitute python2.5-dev or python2.4-dev if you have an older
- system. Alternately, on newer Debian/Ubuntu versions, you can try
- this:
+ Substitute python2.5-dev if you have an older system. Alternately,
+ on newer Debian/Ubuntu versions, you can try this:
apt-get build-dep bup
On the plus side, they actually do have support now, but it's new,
and not remotely as well tested as tar/rsync/whatever's. If you'd
- like to help test, please do; something like 'rsync -niaHAX src/
- restore/' may be useful on that front.
+ like to help test, please do (see t/compare-trees for one
+ comparison method).
In addition, at the moment, if any strip or graft-style options
are specified to 'bup save', then no metadata will be written for
the root directory. That's obviously less than ideal.
+ - bup is overly optimistic about mmap. Right now bup just assumes
+ that it can mmap as large a block as it likes, and that mmap will
+ never fail. Yeah, right... If nothing else, this has failed on
+ 32-bit architectures (and 31-bit is even worse -- looking at you,
+ s390).
+
+ To fix this, we might just implement a FakeMmap[1] class that uses
+ normal file IO and handles all of the mmap methods[2] that bup
+ actually calls. Then we'd swap in one of those whenever mmap
+ fails.
+
+ This would also require implementing some of the methods needed to
+ support "[]" array access, probably at a minimum __getitem__,
+ __setitem__, and __setslice__ [3].
+
+ [1] http://comments.gmane.org/gmane.comp.sysutils.backup.bup/613
+ [2] http://docs.python.org/2/library/mmap.html
+ [3] http://docs.python.org/2/reference/datamodel.html#emulating-container-types
+
- 'bup index' is slower than it should be.
It's still rather fast: it can iterate through all the filenames on my
bup-list+subscribe@googlegroups.com
-Please see <a href="bup/blob/master/HACKING">./HACKING</a> for
+Please see <a href="HACKING">./HACKING</a> for
additional information, i.e. how to submit patches (hint - no pull
requests), how we handle branches, etc.