BUD: Back-Up Directory
======================

Bud can't do much more than back-up a directory, but the way it does it is
powerful. Its written in POSIX Shell Script and requires only some core
utilities found in Busybox. If you want to use remote directories, you'll
additionally need the Rsync command.

To save storage space, files with the same name and content as previous snapshot
are hard linked. These links are preserved by Rsync.

The file .bud/HEAD contains the number of shapshots ever made, which the push
and pull commands use to determine which repository has the newest snapshot.

Any directory on a Rsync server, empty or not, can be used as a repository.

Two Types of Backup
-------------------
Snapshots are incremental backups stored in the .bud directory. A remote
repository is a backup of the .bud directory.

Configuring
-----------
Configuration options are written to .bud/config.

  bud config rotate NUMBER

Where NUMBER is any positive number. Specifies the number of snapshots before
rotation occurs. If left unconfigured, rotation will never occur. 

  bud config remote STRING

Where STRING is the Rsync URL. Specifies the default Rsync server for pushing
and pulling. If left unconfigured, you must specifiy it on the command line.

  bud config pass STRING

Where STRING is the password used for logging into the Rsync server. If left
unconfigured, you'll be asked for it on the command line.

Examples
--------
Archive:

  bud archive > ../bud.cpio

Clone:

  bud clone rsync://example.com/bud/

This will copy the remote repository to a directory named "bud". If the remote
repository requires authentication, the user name "anonymous" and an empty
password is used.

Create a repository and shoot it:

  bud init
  bud shoot

Upload repository to an Rsync server specified on the command line:

  bud push rsync://example.com/bud/

Author
------
Written by Stone Fox. This work is public domain, do with it what you please.
