Alexander Larsson
818c249bae
archive: Implement ApplyLayer directly
...
Rather than calling out to tar we use the golang tar parser
to directly extract the tar files. This has two major advantages:
1) We're able to replace an existing directory with a file in the
new layer. This currently breaks with the external tar, since
it refuses to recursively remove the destination directory in
this case, and there are no options to make it do that.
2) We avoid extracting the whiteout files just to later remove them.
2013-12-13 15:43:50 +01:00
Andrews Medina
8b2a7e35c3
Move syscall.Stats logic to os specific file.
...
related to #2909 .
2013-11-28 00:22:47 -02:00
Michael Crosby
3edb4af663
Ensure same atime, mtime after applying whiteouts
2013-11-19 00:35:03 -08:00
Alexander Larsson
006e2a600c
ApplyLayer() use RemoveAll to handle removing directories
...
rmTargetPath can be a directory, so we have to use RemoveAll() or we
will fail to whiteout non-empty directories.
2013-11-14 22:56:18 +01:00
Guillaume J. Charmes
50d80a8938
Merge pull request #17 from alexlarsson/dm-plugin-whiteout-directory
...
archive.ApplyLayer() - handle directory whiteouts
2013-11-12 12:16:30 -08:00
Alexander Larsson
6f3c32eb18
archive.ApplyLayer() - handle directory whiteouts
...
When directories are white-outed we can get called with the previously
removed directories. Handle this with os.IsNotExist(error).
2013-11-12 21:14:54 +01:00
Michael Crosby
5d9723002b
Allow drivers to implement ApplyDiff in Differ interface
2013-11-11 19:09:57 -08:00
Solomon Hykes
78ef0bd998
Merge pull request #6 from alexlarsson/fix-ApplyLayer-remove
...
archive.ApplyLayer() remove files recursively
2013-11-08 11:46:55 -08:00
Solomon Hykes
f1127b9308
gofmt
2013-11-07 23:58:03 +00:00
Alexander Larsson
484804abff
archive.ApplyLayer() remove files recursively
...
Some aufs metadata are directories, and whiteouts can be for
directories, so use os.RemoveAll() for these.
2013-11-07 22:46:44 +01:00
Solomon Hykes
318dd33fb7
archive.ApplyLayer(): parse a tar archive as a standard aufs-compatible diff, and apply it on a directory
2013-11-01 05:06:35 +00:00