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
2fd294d06f
Rather than go through the location log to see which files are present on the remote, it simply looks at the disk contents directly. I benchmarked this speeding up scanning 834 files, from an annex on my phone's SSD, from 11.39 seconds to 1.31 seconds. (No files actually moved.) Also benchmarked 8139 files, from an annex on spinning storage, speeding up from 103.17 to 13.39 seconds. Note that benchmarking with an encrypted annex on flash actually showed a minor slowdown with this optimisation -- from 13.93 to 14.50 seconds. Seems the overhead of doing the crypto needed to get the filenames to directly check can be higher than the overhead of looking up data in the location log. (Which says good things about how well the location log and git have been optimised!) It *may* make sense to make encrypted local remotes not have hasKeyCheap set; further benchmarking is called for. |
||
---|---|---|
Annex | ||
Backend | ||
Build | ||
Command | ||
Common | ||
debian | ||
doc | ||
Git | ||
Logs | ||
Messages | ||
Remote | ||
Types | ||
Upgrade | ||
Utility | ||
.gitattributes | ||
.gitignore | ||
Annex.hs | ||
Backend.hs | ||
CHANGELOG | ||
Checks.hs | ||
CmdLine.hs | ||
Command.hs | ||
Common.hs | ||
Config.hs | ||
configure.hs | ||
Crypto.hs | ||
git-annex-shell.hs | ||
git-annex.cabal | ||
git-annex.hs | ||
git-union-merge.hs | ||
Git.hs | ||
GitAnnex.hs | ||
GPL | ||
Init.hs | ||
INSTALL | ||
Limit.hs | ||
Locations.hs | ||
Makefile | ||
mdwn2man | ||
Messages.hs | ||
NEWS | ||
Option.hs | ||
README | ||
Remote.hs | ||
Seek.hs | ||
Setup.hs | ||
test.hs | ||
Types.hs | ||
Upgrade.hs | ||
Usage.hs |
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 <http://git-annex.branchable.com/>