duplicity-team team mailing list archive
-
duplicity-team team
-
Mailing list archive
-
Message #00160
Coalescing of Incremental Backups/Snapshots
Dear Duplicity Team,
If any of you are following the development of Time Drive, you might be
interested to know that we just released a second version
(http://www.oak-tree.us/blog/index.php/2009/09/24/timedrive-02). At the
same time, the project has a new home on Launchpad
(https://launchpad.net/time-drive). In the recently released version of
Time Drive, the big push was to clean up the code base and make it
easier to customize the settings for individual backup folders, which
has largely been complete. I now feel like we have a (relatively) well
organized code base that can grow.
Which means it's time to start thinking about future features. One of
the big ones that we'd like to see is a better way to manage backups and
snapshots, with the combination of incremental backups/snapshots (as
discussed a few weeks ago on this list) being integral to that goal.
Which is really the purpose of this email. In the next few weeks, I'm
going to have some time to devote to development and would like to spend
that time working on the incremental backup combination feature. And
because it is always better to share, if that code was written with the
hope of eventual inclusion into duplicity, it might save others a bit of
work in the future.
Before diving in and generally making a mess, though, I had a couple of
questions:
* What is the overall workflow that this code would need to follow?
o This is what I've drafted so far: Locate and download .tar
archives -> extract diff files -> compare signatures to
availabe diff versions -> discard previous diffs that aren't
needed to maintain chain continuity ->
re-compress/re-encrypt to new .tar archive(s) -> Upload to
storage -> Modify manifest and other files to reflect the
changes
* Are there any important steps that I am missing?
* In the rough workflow above, is there already existing code that
handles certain components? Or will all of the code need to be
written from scratch?
* Are there existing methods that do similar tasks that might serve
examples in working with the duplicity classes? (I've been trying
to sort my way through restore files methods to better understand
how to work with individual backup sets and the manifest.)
* How does one go about modifying the existing manifest so that the
backup chain is broken beyond all hope of repair?
My apologies for two rather long emails in as many days, but this is a
feature that I think would make an excellent addition to both Time Drive
and to duplicity, and I've learned that free time should be taken
advantage of when it appears.
Cheers,
Rob
Follow ups