annex.fastcopy
authorJoey Hess <joeyh@joeyh.name>
Tue, 3 Jun 2025 19:01:38 +0000 (15:01 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 3 Jun 2025 19:01:38 +0000 (15:01 -0400)
commit73060eea5144601b18820b8d017cd0dc76378084
tree63bbd6285f9b9dd3525b46af175fa4fbe55c6041
parent6468a39e9259bada40135da8f9e8ff45cc9a0189
annex.fastcopy

Added annex.fastcopy and remote.name.annex-fastcopy config setting. When
set, this allows the copy_file_range syscall to be used, which can eg allow
for server-side copies on NFS. (For fastest copying, also disable
annex.verify or remote.name.annex-verify.)

This is a simple implementation, that does not handle resuming as well as
it possibly could.

It can be used with both local git remotes (including on NFS), and
directory special remotes. Other types of remotes could in theory also
support it, so I've left the config documented as a general thing.
Annex/CopyFile.hs
CHANGELOG
Remote/Directory.hs
Remote/Git.hs
Types/GitConfig.hs
Utility/CopyFile.hs
doc/git-annex.mdwn
doc/todo/use_copy__95__file__95__range_for_get_and_copy.mdwn
doc/todo/use_copy__95__file__95__range_for_get_and_copy/comment_3_04c577bff624af761d997e5f9a8d951d._comment
doc/todo/use_copy__95__file__95__range_for_get_and_copy/comment_4_e48e458e7b0a951820bdb81772d5c56e._comment [new file with mode: 0644]