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 73a6b9b514
Add content locking to P2P protocol
Is content locking needed in the P2P protocol? Based on re-reading
bugs/concurrent_drop--from_presence_checking_failures.mdwn,
I think so: Peers can form cycles, and multiple peers can all be trying
to drop the same content.

So, added content locking to the protocol, with some difficulty.

The implementation is fine as far as it goes, but note the warning
comment for lockContentWhile -- if the connection to the peer is dropped
unexpectedly, the peer will then unlock the content, and yet the local
side will still think it's locked.

To be honest I'm not sure if Remote.Git's lockKey for ssh remotes
doesn't have the same problem. It checks that the
"ssh remote git-annex-shell lockcontent"
process has not exited, but if the connection closes afer that check,
the lockcontent command will unlock it, and yet the local side will
still think it's locked.

Probably this needs to be fixed by eg, making lockcontent catch any
execptions due to the connection closing, and in that case, wait a
significantly long time before dropping the lock.

This commit was sponsored by Anthony DeRobertis on Patreon.
2016-11-18 01:32:24 -04:00
Annex Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Assistant Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Backend Improve SHA*E extension extraction code. 2016-05-27 13:14:51 -04:00
Build remove debug print 2016-11-15 21:52:10 -04:00
CmdLine Merge branch 'master' into tor 2016-11-17 12:56:27 -04:00
Command Merge branch 'master' into tor 2016-11-17 12:56:27 -04:00
Config Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Database Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
debian implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
doc Merge branch 'master' into tor 2016-11-17 12:56:27 -04:00
Git Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Limit matchexpression: New plumbing command to check if a preferred content expression matches some data. 2016-01-25 16:16:18 -04:00
Logs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Messages add missing case for unknown size with normal output 2016-10-05 15:10:24 -04:00
Remote Add content locking to P2P protocol 2016-11-18 01:32:24 -04:00
RemoteDaemon implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
standalone Linux standalone: Include locale files in the bundle, and generate locale definition files for the locales in use when starting runshell. 2016-10-04 16:37:43 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates New url for git-remote-gcrypt, now maintained by spwhitton. 2016-07-05 11:30:58 -04:00
Types implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
Upgrade refactor 2016-10-17 14:58:33 -04:00
Utility implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
.ghci workaround for ghci fragility in reusing objects compiled with ghc 2012-10-20 16:20:42 -04:00
.gitattributes update changelog location 2016-08-22 23:54:11 -04:00
.gitignore fix man page building 2016-06-02 16:54:58 -04:00
.mailmap alias for Yaroslav @ yahoo to mailmap 2015-09-09 12:38:59 -04:00
Annex.hs Optimisations to git-annex branch query and setting, avoiding repeated copies of the environment. 2016-09-29 13:36:48 -04:00
Assistant.hs move old ghc compat code into separate module; eliminate WITH_CLIBS 2016-02-15 11:47:33 -04:00
Backend.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -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 Remove the EKG build flag, since Gentoo for some reason decided to enable this flag, depsite it not being intended for production use and so enabled by default. 2016-07-06 15:09:56 -04:00
CHANGELOG arm build uses 32kb page size 2016-11-16 18:05:42 -04:00
CmdLine.hs Make --json and --quiet suppress automatic init messages 2016-09-05 15:34:38 -04:00
Command.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Common.hs avoid warnings about not exported System.Directory.isSymbolicLink 2016-04-28 15:18:11 -04:00
Config.hs refactor isBareRepo 2016-06-02 16:59:47 -04:00
COPYRIGHT fix lintian pedantry 2016-07-19 14:43:32 -04:00
Creds.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Crypto.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
ghci avoid tab warnings from ghc 8 2016-11-17 13:39:30 -04:00
git-annex.cabal implementation of peer-to-peer protocol 2016-11-17 18:30:50 -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 unify handling of unusual GIT_INDEX_FILE relative path 2016-05-17 14:42:06 -04:00
Git.hs Propigate GIT_DIR and GIT_WORK_TREE environment to external special remotes. 2016-05-06 12:26:44 -04:00
Limit.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Logs.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Makefile OSX: Remove RPATHs from git-annex binary, which are not needed, slow down startup, and break the OSX Sierra linker. 2016-11-07 14:22:14 -04:00
Messages.hs drop incremental json object display; clean up code 2016-09-09 18:13:55 -04:00
NEWS Updated cabal file explictly lists source files. 2016-05-24 01:28:07 -04:00
README use https 2014-11-06 14:20:10 -04:00
Remote.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Setup.hs Remove Makefile from cabal tarball; man page building is now handled by a small haskell program. 2016-05-31 13:58:13 -04:00
stack.yaml pin concurrent-output to a version that works on windows 2016-09-21 18:01:46 -04:00
Test.hs lock: Fix edge cases where data loss could occur in v6 mode. 2016-10-17 13:58:43 -04:00
Types.hs remove module unused since switch to optparse-applicative 2016-01-21 12:59:50 -04:00
Upgrade.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -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/>