On Tuesday 16 May 2006 18:16, Helmut Waitzmann wrote:
> As tar stores all file names of a directory (regardless of whether the
> files themselves are stored in the incremental archive or not), it
> /knows/ which files are to be deleted when incremental extracting an
> incremental archive:  It simply deletes all files which names are
> /not/ in the incremental archive, thus truly applying the changes,

Ah, but here's the rub: This step only truly applies the changes from the 
incremental archive, if there were no other unrelated files in the directory. 
Consider the following example:

$ mkdir foo
$ touch foo/bar
$ tar -cvf test.tar --listed-incremental=listing foo/
foo/
foo/bar
$ rm foo/bar
$ touch foo/baz
$ tar -cvf test2.tar --listed-incremental=listing foo/
foo/
foo/baz
$ touch foo/bat
$ tar -xvf test2.tar --listed-incremental foo/
foo/
foo/baz
$ ls foo
baz

The point here is that the last execution of tar did /not/ truly apply the 
changes from the incremental archive; instead, it made a completely unrelated 
change by deleting the file foo/bat, which had never been mentioned before.

IMHO it should be possible to extract an incremental archive in such a way as 
to truly get /only/ the changes from that archive, but I don't think the 
required information is really there.

Cheers,

--Ian

-- 
Zmanda: Open Source Data Protection and Archiving.
        http://www.zmanda.com


_______________________________________________
Bug-tar mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-tar

Reply via email to