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