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 731e806c96
use lookupKeyStaged in --batch code paths
Make --batch mode handle unstaged annexed files consistently whether the
file is unlocked or not. Before this, a unstaged locked file
would have the symlink on disk examined and operated on in --batch mode,
while an unstaged unlocked file would be skipped.

Note that, when not in batch mode, unstaged files are skipped over too.
That is actually somewhat new behavior; as late as 7.20191114 a
command like `git-annex whereis .` would operate on unstaged locked
files and skip over unstaged unlocked files. That changed during
optimisation of CmdLine.Seek with apparently little fanfare or notice.

Turns out that rmurl still behaved that way when given an unstaged file
on the command line. It was changed to use lookupKeyStaged to
handle its --batch mode. That also affected its non-batch mode, but
since that's just catching up to the change earlier made to most
other commands, I have not mentioed that in the changelog.

It may be that other uses of lookupKey should also change to
lookupKeyStaged. But it may also be that would slow down some things,
or lead to unwanted behavior changes, so I've kept the changes minimal
for now.

An example of a place where the use of lookupKey is better than
lookupKeyStaged is in Command.AddUrl, where it looks to see if the file
already exists, and adds the url to the file when so. It does not matter
there whether the file is staged or not (when it's locked). The use of
lookupKey in Command.Unused likewise seems good (and faster).

Sponsored-by: Nicholas Golder-Manning on Patreon
2022-10-26 14:43:06 -04:00
Annex use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
Assistant avoid flushing keys db queue after each Annex action 2022-10-12 14:12:23 -04:00
Backend move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
Build avoid flushing keys db queue after each Annex action 2022-10-12 14:12:23 -04:00
CmdLine use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
Command use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
Config improve createDirectoryUnder to allow alternate top directories 2022-08-12 12:52:37 -04:00
Database improve sqlite retrying behavior 2022-10-18 15:47:20 -04:00
debian change name of option 2022-10-03 13:02:11 -04:00
doc use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
Git fix flush of a closed file handle 2022-09-30 14:02:31 -04:00
Limit new matching options --want-get-by and --want-drop-by 2022-07-28 13:26:03 -04:00
Logs take lock in checkLogFile and calcLogFile 2022-10-07 13:19:17 -04:00
Messages factor out Utility.Aeson.textKey 2022-03-02 18:24:06 -04:00
P2P fix handling of corrupted data received from git remote 2022-01-07 13:25:33 -04:00
Remote avoid flushing keys db queue after each Annex action 2022-10-12 14:12:23 -04:00
RemoteDaemon remove support code for ancient git-annex-shell version 2021-10-11 16:07:08 -04:00
standalone move assistant and webapp build-depends into main build-depends 2022-08-29 15:23:49 -04:00
static
templates
Test test: Added --test-with-git-config option 2022-09-22 15:58:45 -04:00
Types all keys are still present on versioned remote after import of a tree 2022-10-11 13:05:40 -04:00
Upgrade avoid uncessary keys db writes; doubled speed! 2022-10-12 15:33:16 -04:00
Utility fix breakage in wormhole's sendFile 2022-09-26 15:26:29 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes
.gitignore ignore more cabal.project backup files 2022-08-22 12:03:27 -04:00
.mailmap
Annex.hs avoid flushing keys db queue after each Annex action 2022-10-12 14:12:23 -04:00
Assistant.hs assistant: Fix a crash on startup by avoiding using forkProcess 2021-05-12 15:08:03 -04:00
Backend.hs move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
bash-completion.bash
Benchmark.hs --size-limit exit 101 2021-06-04 16:43:47 -04:00
BuildFlags.hs show when build with Benchmark build flag 2022-08-29 14:55:58 -04:00
BuildInfo.hs
CHANGELOG use lookupKeyStaged in --batch code paths 2022-10-26 14:43:06 -04:00
CmdLine.hs avoid flushing keys db queue after each Annex action 2022-10-12 14:12:23 -04:00
Command.hs remove whenAnnexed and ifAnnexed 2022-10-26 14:06:32 -04:00
Common.hs avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
Config.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
COPYRIGHT bump year for Utility/* 2022-05-04 11:40:25 -04:00
Creds.hs avoid getting creds from environment during autoenable 2021-03-17 09:41:12 -04:00
Crypto.hs avoid setEnv while testing gpg 2022-05-18 16:05:11 -04:00
git-annex.cabal avoid uncessary keys db writes; doubled speed! 2022-10-12 15:33:16 -04:00
git-annex.hs
git-union-merge.hs
Git.hs use getSymbolicLinkStatus not getFileStatus to avoid crash on broken symlink 2022-09-05 13:46:32 -04:00
Key.hs convert Key to ShortByteString 2021-10-05 20:20:08 -04:00
Limit.hs use getSymbolicLinkStatus not getFileStatus to avoid crash on broken symlink 2022-09-05 13:46:32 -04:00
Logs.hs filter-branch working aside from some edge cases 2021-05-17 13:24:58 -04:00
Makefile don't force debuglocks flag on in Makefile 2022-08-09 10:43:07 -04:00
Messages.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
NEWS complete annex.skipunknown transition 2022-02-18 13:18:05 -04:00
README improve description 2022-01-06 12:24:27 -04:00
Remote.hs improve wording 2022-10-03 13:32:55 -04:00
Setup.hs
stack.yaml move assistant and webapp build-depends into main build-depends 2022-08-29 15:23:49 -04:00
Test.hs test v10 2022-10-12 16:13:30 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs handle upgrading repositories initialized with --version=9 2022-09-26 12:59:51 -04:00

git-annex allows managing large files with git, without storing the file
contents in git. It can sync, backup, and archive your data, offline
and online. Checksums and encryption keep your data safe and secure. Bring
the power and distributed nature of git to bear on your large files with
git-annex.

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