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
41271e4eb4
isKnownImportLocation does a database lookup and there's an index to make that lookup fast, so it's probably faster than talking to git check-ignore. Checking the matcher is faster still. While before the gitignore check was added it did not need to always check isknown, now it does, because it's that or the more expensive notignored. But at least we can skip notignored when a file is known, which will often be the common case: Importing from a remote that's been exported to, and/or imported from before, only new files will not be known, so only those will need to check notignored. At first, I had this: (matches <&&> (isknown <||> notignored)) <||> isknown Notice that checks isknown every time, whether it matches or not. So, it's no slower to instead do this: isknown <||> (matches <&&> notignored) That has the benefit that, when it's known, it doesn't need to run matches, which while faster than isknown, is still going to use some CPU. And it perhaps more clearly expresses the condition: Any known file is wanted, otherwise it's down to what matches and is not ignored. This commit was sponsored by Jack Hill on Patren. |
||
---|---|---|
Annex | ||
Assistant | ||
Backend | ||
Build | ||
CmdLine | ||
Command | ||
Config | ||
Database | ||
debian | ||
doc | ||
Git | ||
Limit | ||
Logs | ||
Messages | ||
P2P | ||
Remote | ||
RemoteDaemon | ||
standalone | ||
static | ||
templates | ||
Test | ||
Types | ||
Upgrade | ||
Utility | ||
.ghci | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
Annex.hs | ||
Assistant.hs | ||
Backend.hs | ||
bash-completion.bash | ||
Benchmark.hs | ||
build.bat | ||
BuildFlags.hs | ||
BuildInfo.hs | ||
CHANGELOG | ||
CmdLine.hs | ||
Command.hs | ||
Common.hs | ||
Config.hs | ||
COPYRIGHT | ||
Creds.hs | ||
Crypto.hs | ||
git-annex.cabal | ||
git-annex.hs | ||
git-union-merge.hs | ||
Git.hs | ||
Jenkinsfile | ||
Key.hs | ||
Limit.hs | ||
Logs.hs | ||
Makefile | ||
Messages.hs | ||
NEWS | ||
README | ||
Remote.hs | ||
Setup.hs | ||
stack.yaml | ||
Test.hs | ||
Types.hs | ||
Upgrade.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 <https://git-annex.branchable.com/>