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 ce455223df
split out appending to journal from writing, high level only
Currently this is not an improvement, but it allows for optimising
appendJournalFile later. With an optimised appendJournalFile, this will
greatly speed up access patterns like git-annex addurl of a lot of urls
to the same key, where the log file can grow rather large. Appending
rather than re-writing the journal file for each line can save a lot of
disk writes.

It still has to read the current journal or branch file, to check
if it can append to it, and so when the journal file does not exist yet,
it can write the old content from the branch to it. Probably the re-reads
are better cached by the filesystem than repeated writes. (If the
re-reads turn out to keep performance bad, they could be eliminated, at
the cost of not being able to compact the log when replacing old
information in it. That could be enabled by a switch.)

While the immediate need is to affect addurl writes, it was implemented
at the level of presence logs, so will also perhaps speed up location logs.
The only added overhead is the call to isNewInfo, which only needs to
compare ByteStrings. Helping to balance that out, it avoids compactLog
when it's able to append.

Sponsored-by: Dartmouth College's DANDI project
2022-07-18 13:22:50 -04:00
Annex split out appending to journal from writing, high level only 2022-07-18 13:22:50 -04:00
Assistant avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
Backend move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
Build assume @RPATH libs are present 2022-01-03 15:05:15 -04:00
CmdLine remove --backend from global options 2022-06-29 13:33:25 -04:00
Command avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
Config enable filter.annex.process in v9 2022-01-21 13:11:18 -04:00
Database avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
debian remove vendored http-client-restricted 2022-03-22 11:50:06 -04:00
doc Added a comment 2022-07-15 19:33:50 +00:00
Git filter-process: Fix protocol for empty files 2022-07-13 17:13:54 -04:00
Limit fix longstanding indeterminite preferred content for duplicated file problem 2021-05-24 14:07:05 -04:00
Logs split out appending to journal from writing, high level only 2022-07-18 13:22:50 -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 S3: Avoid writing or checking the uuid file in the S3 bucket when importtree=yes or exporttree=yes 2022-07-14 15:05:51 -04:00
RemoteDaemon remove support code for ancient git-annex-shell version 2021-10-11 16:07:08 -04:00
standalone Removed the NetworkBSD build flag 2022-03-22 11:52:52 -04:00
static
templates cache the serialization of a Key 2019-11-22 17:49:16 -04:00
Test fix git-annex test -p 2022-05-23 14:24:54 -04:00
Types remove --backend from global options 2022-06-29 13:33:25 -04:00
Upgrade move several readonly values to AnnexRead 2022-06-28 15:40:19 -04:00
Utility avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
.ghci turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
.gitattributes
.gitignore stack.yaml: Updated to lts-16.10 2020-08-24 14:11:37 -04:00
.mailmap
Annex.hs final readonly values moves to AnnexRead 2022-06-28 16:04:58 -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 Removed the S3 and WebDAV build flags 2020-09-08 12:42:59 -04:00
BuildInfo.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CHANGELOG disable journalIgnorable in enableInteractiveBranchAccess 2022-07-15 13:48:41 -04:00
CmdLine.hs remove --backend from global options 2022-06-29 13:33:25 -04:00
Command.hs remove --backend from global options 2022-06-29 13:33:25 -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 increase cabal-version to work with recent cabal 2022-07-16 14:57:29 -04:00
git-annex.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
git-union-merge.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Git.hs reinject: Fix crash when reinjecting a file from outside the repository 2021-10-01 14:06:34 -04:00
Key.hs convert Key to ShortByteString 2021-10-05 20:20:08 -04:00
Limit.hs prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
Logs.hs filter-branch working aside from some edge cases 2021-05-17 13:24:58 -04:00
Makefile add debugLocks around database operations 2022-06-03 14:16:28 -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 factor out Utility.Aeson.textKey 2022-03-02 18:24:06 -04:00
Setup.hs
stack.yaml Revert "lts-19.13 (ghc 9.0.2)" 2022-07-05 13:13:25 -04:00
Test.hs add: Fix reversion when adding an annex link that has been moved to another directory 2022-07-05 16:22:41 -04:00
Types.hs plumb VerifyConfig into retrieveKeyFile 2021-08-17 12:43:13 -04:00
Upgrade.hs add upgrade.log 2022-01-19 15:52:29 -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/>