CI to automate build of cargo lockfiles on different Alpine releases for git-annex aports https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/git-annex
Find a file
Joey Hess 1b55af4c3c
deal with unlocked files when calling rsyncParamsRemote
In copyFromRemote, it used to check isDirect, but that was not needed;
the remote is sending the file, so it doesn't matter if the local,
receiving repository is in direct mode or not. And, since the content is not
present, yet, it's certianly not unlocked. Note that, the remote may indeed
be sending an unlocked file, but sendkey uses sendAnnex, which will detect
if the file is modified before or during transfer, and will exit nonzero,
aborting the upload. So, the receiver doesn't need any checks.

In copyToRemote, it forces recvkey to verify content whenever it's being
sent from a v6 repository. recvkey is almost always going to verify content
anyway, unless annex.verify is not set. So, this doesn't make it any more
expensive, except for in that unusual configuration. The alternative would
be to change the recvkey interface, so that the sender checks afterwards if
what it was sending changed, and the receiver then throws out the bad
transfer. That would be less expensive for the reciever, as it would not
need to do a checksum verification. But, it would mean another network
round trip, and since rsync closes the connection, it would need to open
another ssh connection to do this. Even with connction caching, that would
add latency to uploads. It would also complicate the interface, especially
because an older git-annex-shell would not have the new interface
available. For these reasons, I prefer punting on that at this time, and
instead someone might set annex.verify=false and be unhappy that it still
verifies..

(One other gotcha not dealt with is that a v5 repo could be upgraded to v6
while an upload is in progress, and a file unlocked and modified.)

(Also, I double-checked Remote.GCrypt's calls to rsyncParamsRemote, and
they're fine. When a file is being uploaded to gcrypt, or any other special
repository, it is mediated by sendAnnex, so changes will be detected at
that level and the special remote implementation doesn't need to worry
about them.)
2015-12-26 14:16:27 -04:00
Annex improve comment 2015-12-26 13:47:36 -04:00
Assistant combine PendingAddChanges for the same file into one 2015-12-22 17:52:39 -04:00
Backend generalize catchHardwareFault to catchIOErrorType 2015-12-06 16:26:38 -04:00
Build got logic backwards.. 2015-11-03 10:51:21 -04:00
CmdLine add unlocked flag for git-annex-shell recvkey 2015-12-26 13:59:27 -04:00
Command add unlocked flag for git-annex-shell recvkey 2015-12-26 13:59:27 -04:00
Common Use lower case hash directories for storing files on crippled filesystems, same as is already done for bare repositories. 2013-04-04 15:46:33 -04:00
Config webapp: Fix bugs that could result in a relative path such as "." being written to ~/.config/git-annex/autostart 2015-12-02 15:57:30 -04:00
Database unused import 2015-12-24 13:07:42 -04:00
debian reword 2015-12-26 13:06:53 -04:00
doc add unlocked flag for git-annex-shell recvkey 2015-12-26 13:59:27 -04:00
Git fix use of hifalutin terminology 2015-11-16 14:37:31 -04:00
Limit update my email address and homepage url 2015-01-21 12:50:09 -04:00
Logs avoid unnecessary reading of git-annex branch data when matching on annex.largefiles 2015-12-04 15:06:41 -04:00
Messages avoid spawning file size polling thread when not in -J mode 2015-11-16 21:21:58 -04:00
Remote deal with unlocked files when calling rsyncParamsRemote 2015-12-26 14:16:27 -04:00
RemoteDaemon rename bothHandles -> ioHandles 2015-04-03 15:35:18 -04:00
standalone Make the git-annex-standalone.deb prevent runshell from installing wrappers into $HOME/.ssh 2015-11-10 12:53:46 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates webapp: Remove the "disable remote" feature from the UI. 2015-09-21 13:05:44 -04:00
Types refactoring 2015-12-22 13:42:58 -04:00
Upgrade make linkAnnex detect when the file changes as it's being copied/linked in 2015-12-22 15:20:03 -04:00
Utility optimise read and write for Keys database (untested) 2015-12-23 19:18:52 -04:00
.ghci workaround for ghci fragility in reusing objects compiled with ghc 2012-10-20 16:20:42 -04:00
.gitattributes decruft 2011-06-22 18:56:08 -04:00
.gitignore cleanup makefile 2015-07-23 12:51:27 -04:00
.mailmap alias for Yaroslav @ yahoo to mailmap 2015-09-09 12:38:59 -04:00
Annex.hs flush keys db queue even on exception 2015-12-23 19:38:18 -04:00
Assistant.hs unused import on windows 2015-04-20 11:27:47 -04:00
Backend.hs reorg 2015-12-15 15:34:28 -04:00
bash-completion.bash fix bash completion of filenames containing spaces 2015-07-20 11:17:35 -04:00
build.bat let build.bat also be run from cygwin terminal 2015-04-21 14:12:14 -04:00
BuildFlags.hs persistent-sqlite is now a hard build dependency, since v6 repository mode needs it. 2015-12-26 13:00:52 -04:00
CHANGELOG symlinks 2010-10-27 15:14:59 -04:00
Checks.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
CmdLine.hs arrange for regional output manager to run when -J is enabled 2015-11-04 16:22:43 -04:00
Command.hs reorg 2015-12-15 15:34:28 -04:00
Common.hs import Data.Default in Common 2015-01-28 16:11:28 -04:00
Config.hs init: Configure .git/info/attributes to use git-annex as a smudge filter. 2015-12-04 17:57:15 -04:00
configure.hs Rewrote free disk space checking code 2012-03-22 17:32:47 -04:00
COPYRIGHT Add link COPYRIGHT -> debian/copyright; add COPYRIGHT to sdist. 2012-06-11 23:27:00 -07:00
Creds.hs support gpg.program 2015-09-09 18:06:49 -04:00
Crypto.hs support gpg.program 2015-09-09 18:06:49 -04:00
ghci brought back fast ghci 2013-02-27 21:38:01 -04:00
git-annex.cabal persistent-sqlite is now a hard build dependency, since v6 repository mode needs it. 2015-12-26 13:00:52 -04:00
git-annex.hs wire tasty's option parser into the main program option parser 2015-07-13 13:20:10 -04:00
git-union-merge.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Git.hs init: Configure .git/info/attributes to use git-annex as a smudge filter. 2015-12-04 17:57:15 -04:00
INSTALL symlinks 2010-10-27 15:14:59 -04:00
Limit.hs reorg 2015-12-15 15:34:28 -04:00
Locations.hs add inode cache to the db 2015-12-09 17:00:37 -04:00
Logs.hs rethought distributed fsck; instead add activity.log and expire command 2015-04-05 12:50:02 -04:00
Makefile Build with -j1 again to get reproducible build. 2015-11-16 16:51:24 -04:00
Messages.hs optimise read and write for Keys database (untested) 2015-12-23 19:18:52 -04:00
NEWS update NEWS 2012-01-19 15:27:39 -04:00
README use https 2014-11-06 14:20:10 -04:00
Remote.hs enableremote: List uuids and descriptions of remotes that can be enabled, and accept either the uuid or the description in leu if the name. 2015-10-26 14:55:40 -04:00
Setup.hs improve warning 2015-11-03 11:06:33 -04:00
stack.yaml enable ConcurrentOutput flag for stack 2015-11-06 15:26:12 -04:00
Test.hs temporarily disable v6 repos tests (still 4 failures) 2015-12-24 19:24:40 -04:00
Types.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Upgrade.hs Use git-annex init --version=6 to get v6 for now 2015-12-15 17:17:13 -04:00

git-annex allows managing files with git, without checking the file
contents into git. While that may seem paradoxical, it is useful when
dealing with files larger than git can currently easily handle, whether due
to limitations in memory, checksumming time, or disk space.

For documentation, see doc/ or <https://git-annex.branchable.com/>