mirror of
https://github.com/restic/restic.git
synced 2025-03-23 00:00:04 +01:00
![]() Note that "cloning" means either true block cloning via `ioctl(FICLONE)` or any kind of local copy in general via fallback to `io.Copy()`. TBD: - fallback to restoring a file normally if it could not be cloned - track all potential cloning sources for each file (every copy that was restored rather than cloned) and try to clone from each copy in turn (Why: imagine a set of duplicate files being restored N:M to a set of distinct filesystems or subvolumes or datasets, such that some pairs can be used as operands to a block cloning operation and some cannot) - progress reporting (report how much space we have saved, or not) Non-goals: - cloning individual blobs via `ioctl(FICLONERANGE)` (Why: this is not going to work very well, if at all, due to blobs not being aligned to any kind of a fundamental block size, _and_ this will impact cloning entire files unless the latter is special-cased, which is exactly what is being done here.) |
||
---|---|---|
.. | ||
doc.go | ||
filerestorer.go | ||
filerestorer_test.go | ||
fileswriter.go | ||
fileswriter_other_test.go | ||
fileswriter_test.go | ||
fileswriter_windows_test.go | ||
hardlinks_index.go | ||
hardlinks_index_test.go | ||
reflinks_index.go | ||
restorer.go | ||
restorer_test.go | ||
restorer_unix.go | ||
restorer_unix_test.go | ||
restorer_windows.go | ||
restorer_windows_test.go | ||
sparsewrite.go | ||
truncate_other.go | ||
truncate_windows.go |