./sysutils/bup, Highly efficient file backup system based on the git packfile format

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.28.1nb2, Package name: bup-0.28.1nb2, Maintainer: gdt

bup is a program that backs things up. bup has a few advantages over other
backup software:

It uses a rolling checksum algorithm (similar to rsync) to split large files
into chunks. The most useful result of this is you can backup huge virtual
machine (VM) disk images, databases, and XML files incrementally, even though
they're typically all in one huge file, and not use tons of disk space for
multiple versions.

It uses the packfile format from git (the open source version control system),
so you can access the stored data even if you don't like bup's user interface.

Unlike git, it writes packfiles directly (instead of having a separate garbage
collection/repacking stage) so it's fast even with gratuitously huge amounts of
data. bup's improved index formats also allow you to track far more filenames
than git (millions) and keep track of far more objects (hundreds or thousands of

Data is "automagically" shared between incremental backups without having to
know which backup is based on which other one - even if the backups are made
from two different computers that don't even know about each other. You just
tell bup to back stuff up, and it saves only the minimum amount of data needed.

Required to run:
[archivers/par2] [lang/perl5] [devel/py-readline] [lang/python27] [www/py-tornado] [devel/git-base]

Required to build:
[net/rsync] [pkgtools/cwrappers]

Master sites:

SHA1: c280255eeb7e7a4fa9b6fbdbf4526ca7c8a40443
RMD160: 0a1c7c605632f9146f34ba4ed12718043e2e3c09
Filesize: 368.859 KB

Version history: (Expand)

CVS history: (Expand)

   2019-04-26 15:14:25 by Maya Rashish | Files touched by this commit (473)
Log message:
Omit mentions of python 34 and 35, after those were removed.

- Includes some whitespace changes, to be handled in a separate commit.
   2019-04-25 09:33:32 by Maya Rashish | Files touched by this commit (620)
Log message:
PKGREVISION bump for anything using python without a PYPKGPREFIX.

This is a semi-manual PKGREVISION bump.
   2018-08-22 11:48:07 by Thomas Klausner | Files touched by this commit (3558)
Log message:
Recursive bump for perl5-5.28.0
   2018-07-03 07:03:44 by Adam Ciarcinski | Files touched by this commit (495)
Log message:
extend PYTHON_VERSIONS_ for Python 3.7
   2017-07-31 00:32:28 by Thomas Klausner | Files touched by this commit (229)
Log message:
Switch github HOMEPAGEs to https.
   2017-01-01 15:44:09 by Thomas Klausner | Files touched by this commit (577)
Log message:
Add python-3.6 to incompatible versions.
   2016-09-19 10:52:24 by Thomas Klausner | Files touched by this commit (3)
Log message:
Remove unnecessary REPLACE_PYTHON lines and patch.
Add perl to run-time depends, at least one subcommand uses it.
(should perhaps be replaced, it's just for stat())
Fix path to REPLACE_PERL files.
Add rsync to BUILD_DEPENDS, it's needed for some tests.
   2016-09-19 01:02:48 by Greg Troxel | Files touched by this commit (5) | Package updated
Log message:
Update to 0.28.1

Upstream changes:

* The index format has changed, which will trigger a full index
  rebuild on the next index run, making that run more expensive than

* When given `--xdev`, `bup save` should no longer skip directories
  that are explicitly listed on the command line when the directory is
  both on a separate filesystem, and a subtree of another path listed
  on the command line.  Previously `bup save --xdev / /usr` could skip
  "/usr" if it was on a separate filesystem from "/".

* Tags along a branch are no longer shown in the branch's directory in
  the virtual filesystem (VFS).  i.e. given `bup tag special
  /foo/latest`, "/foo/special" will no longer be visible via `bup ls`,
  `bup web`, `bup fuse`, etc., but the tag will still be available as

* bup now provides experimental `rm` and `gc` subcommands, which
  should allow branches and saves to be deleted, and their storage
  space reclaimed (assuming nothing else refers to the relevant data).
  For the moment, these commands require an `--unsafe` argument and
  should be treated accordingly.  Although if an attempt to `join` or
  `restore` the data you still care about after a `gc` succeeds,
  that's a fairly encouraging sign that the commands worked correctly.
  (The `t/compare-trees` command in the source tree can be used to
  help test before/after results.)

  Note that the current `gc` command is probabilistic, which means it
  may not remove *all* of the obsolete data from the repository, but
  also means that the command should be fairly efficient, even for
  large repositories.

* bup may have less impact on the filesystem cache.  It now attempts
  to leave the cache roughly the way it found it when running a `save`
  or `split`.

* A specific Python can be specified at `./configure` time via PYTHON,
  i.e. `PYTHON=/some/python ./configure`, and that Python will be
  embedded in all of the relevant scripts as an explicit "#!/..." line
  during `make install`.

* The way bup writes the data to disk (the packfiles in particular),
  should be a bit safer now if there is a coincident power failure or
  system crash.

* bup should be more likely to get the data to permanent storage
  safely on OS X, which appears to follow a surprising interpretation
  of the `fsync()` specification.

* The build system now creates and uses cmd/bup-python which refers to
  the `./configure` selected python.