No need to have a util package under a package... er, package.
We should move most of this functionality to continuity.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Following symlinks does not look like it was intended behavior here,
and fails if the symlink target has not been copied yet.
Signed-off-by: Nick Santos <nicholas.j.santos@gmail.com>
This mainly fixes Linux vs generic Unix differences, with some
differences between Darwin and Freebsd (which are close bit not
identical). Should make fixing for other Unix platforms easier.
Note there are not yet `runc` equivalents for these platforms;
my current use case is image manipulation for the `moby` tool.
However there is interest in OCI runtime ports for both platforms.
Current status is that MacOS can build and run `ctr`, `dist`
and `containerd` and some operations are supported. FreeBSD 11
still needs some more fixes to continuity for extended attributes.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
To allow the querying of usage for snapshots, we define a new method on
the snapshotter to query the resources in use by a single snapshot.
Conversely, it can be said that if the snapshot was deleted, the
reported amount of usage would be recovered.
There are few problems with this model in the implementation of btrfs
that need to be worked out. In btrfs, it is hard to resolve the amount
of data usage with the use of quotas but these may report valuables that
are incompatible with the model.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Previously hardlinking to an unmodified file or linking to a file
which was touched by not detected as modified caused a new file
to be created on unpack. This new file and the original source file
were not linked since no link record was created in the tar. This
change addresses this by adding links for all hardlinks to a file
when it is detected as changed. These links will be written after
the source file is written and may occur out of order in regard to
file name.
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
Remove change type in favor of explicit change function.
Using change function makes it more difficult to unnecessarily
add to the change interface.
Update test apply functions to use an interface rather
than a function type.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
The change computation will be done on the callers thread
and use callbacks rather than running a goroutine and
returning a channel.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Compare is using its own time check comparison and
doing byte comparison when ambiguous rather than
ignoring it like this function does.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Add diff comparison with support for double walking
two trees for comparison or single walking a diff
tree. Single walking requires further implementation
for specific mount types.
Add directory copy function which is intended to provide
fastest possible local copy of file system directories
without hardlinking.
Add test package to make creating filesystems for
test easy and comparisons deep and informative.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)