Content addressible backupRdump is a basic content-addressable backup system, vaguely inspired by git. It has a fairly long history of multiple implementation in various languages. Because it is a reasonably complex project, it is a good way of exercising the practicality of various programming languages and environments.
Because of the usefulness of bup, rdump has become more about learning and using rust than it has about actually backing my files up. The latest 'odump' implementation in Ocaml is reasonably mature, and works fairly well, even with some significant missing features (notably extended attributes).
The backup store is stored in Content Addressable Storage, also known as CAS.
This websiteI have recently migrated rdump into the Fossil SCM system. Fossil is a distributed SCM, similar in some ways to git. It has a couple of advantages I make use of for rdump development.
- It includes a ticketing system, that is distribute in a similar manner to the code itself.
- It defaults for full synchronization. This is more handy for individual development, helping to keep various computers in sync.
- It has a built-in wiki system, that is also distributed.
- It has a built-in web server.
There are also some philosophical differences from how git works.
- Rebasing and rewriting history is discouraged. Fossil intends to be a record of what actually happened, rather than an idealized view of what happened. Commit text can be updated (it doesn't change the commits, but later augment records can update the commit text).
- The intended model is that all of the repos are synchronized. The branch namespace is shared across all syncrhonized repos, rather than separate for every repo. Again, this is more useful for a centralized workflow, and less useful for very distributed work.
It is taking some work to get used to the more central model, but already I'm finding the branching and integration model useful.