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 ca2a527e93
add FileKeyIndex to Keys db to optimize getAssociatedKey
This is a schema change so will break any existing keys databases. But,
it's not been released yet, so I'm still able to make such changes.

This speeds up the benchmark quite nicely:

benchmarking keys database/getAssociatedKey from 1000 (hit)
time                 91.65 μs   (91.48 μs .. 91.81 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 91.78 μs   (91.66 μs .. 91.94 μs)
std dev              468.3 ns   (353.1 ns .. 624.3 ns)

benchmarking keys database/getAssociatedKey from 1000 (miss)
time                 53.33 μs   (53.23 μs .. 53.40 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 53.43 μs   (53.36 μs .. 53.53 μs)
std dev              274.2 ns   (211.7 ns .. 361.5 ns)

benchmarking keys database/getAssociatedKey from 10000 (hit)
time                 92.99 μs   (92.74 μs .. 93.27 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 92.90 μs   (92.76 μs .. 93.16 μs)
std dev              608.7 ns   (404.1 ns .. 963.5 ns)

benchmarking keys database/getAssociatedKey from 10000 (miss)
time                 53.12 μs   (52.91 μs .. 53.39 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 52.84 μs   (52.68 μs .. 53.16 μs)
std dev              715.4 ns   (400.4 ns .. 1.370 μs)
2016-01-12 13:07:14 -04:00
Annex fix one more test failure with v6 unlocked file merge conflict resolution 2016-01-08 15:23:15 -04:00
Assistant avoid confusing git with a modified ctime in clean filter 2016-01-07 17:48:04 -04:00
Backend force hash to finish with file before returning 2016-01-06 22:09:36 -04:00
Build fix build warning with AMP ghc 2015-12-28 13:16:46 -04:00
CmdLine add database benchmark 2016-01-12 13:07:03 -04:00
Command add database benchmark 2016-01-12 13:07:03 -04:00
Common Use lower case hash directories for storing files on crippled filesystems, same as is already done for bare repositories. 2013-04-04 15:46:33 -04:00
Config webapp: Fix bugs that could result in a relative path such as "." being written to ~/.config/git-annex/autostart 2015-12-02 15:57:30 -04:00
Database add FileKeyIndex to Keys db to optimize getAssociatedKey 2016-01-12 13:07:14 -04:00
debian When annex.http-headers is used to set the User-Agent header, avoid sending User-Agent: git-annex 2016-01-11 12:10:38 -04:00
doc add database benchmark 2016-01-12 13:07:03 -04:00
Git optimise 2016-01-06 20:38:02 -04:00
Limit update my email address and homepage url 2015-01-21 12:50:09 -04:00
Logs avoid unnecessary reading of git-annex branch data when matching on annex.largefiles 2015-12-04 15:06:41 -04:00
Messages avoid spawning file size polling thread when not in -J mode 2015-11-16 21:21:58 -04:00
Remote typo 2015-12-26 15:11:32 -04:00
RemoteDaemon rename bothHandles -> ioHandles 2015-04-03 15:35:18 -04:00
standalone Make the git-annex-standalone.deb prevent runshell from installing wrappers into $HOME/.ssh 2015-11-10 12:53:46 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates webapp: Remove the "disable remote" feature from the UI. 2015-09-21 13:05:44 -04:00
Types test: Added --keep-failures option. 2016-01-06 13:44:12 -04:00
Upgrade use TopFilePath for associated files 2016-01-05 17:22:19 -04:00
Utility When annex.http-headers is used to set the User-Agent header, avoid sending User-Agent: git-annex 2016-01-11 12:10:38 -04:00
.ghci workaround for ghci fragility in reusing objects compiled with ghc 2012-10-20 16:20:42 -04:00
.gitattributes decruft 2011-06-22 18:56:08 -04:00
.gitignore add .stack-work 2015-12-28 17:19:07 -04:00
.mailmap alias for Yaroslav @ yahoo to mailmap 2015-09-09 12:38:59 -04:00
Annex.hs flush keys db queue even on exception 2015-12-23 19:38:18 -04:00
Assistant.hs unused import on windows 2015-04-20 11:27:47 -04:00
Backend.hs reorg 2015-12-15 15:34:28 -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 persistent-sqlite is now a hard build dependency, since v6 repository mode needs it. 2015-12-26 13:00:52 -04:00
CHANGELOG symlinks 2010-10-27 15:14:59 -04:00
Checks.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
CmdLine.hs arrange for regional output manager to run when -J is enabled 2015-11-04 16:22:43 -04:00
Command.hs reorg 2015-12-15 15:34:28 -04:00
Common.hs add database benchmark 2016-01-12 13:07:03 -04:00
Config.hs init: Configure .git/info/attributes to use git-annex as a smudge filter. 2015-12-04 17:57:15 -04:00
configure.hs Rewrote free disk space checking code 2012-03-22 17:32:47 -04:00
COPYRIGHT Add link COPYRIGHT -> debian/copyright; add COPYRIGHT to sdist. 2012-06-11 23:27:00 -07:00
Creds.hs support gpg.program 2015-09-09 18:06:49 -04:00
Crypto.hs support gpg.program 2015-09-09 18:06:49 -04:00
ghci brought back fast ghci 2013-02-27 21:38:01 -04:00
git-annex.cabal add database benchmark 2016-01-12 13:07:03 -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 update my email address and homepage url 2015-01-21 12:50:09 -04:00
Git.hs init: Configure .git/info/attributes to use git-annex as a smudge filter. 2015-12-04 17:57:15 -04:00
INSTALL symlinks 2010-10-27 15:14:59 -04:00
Limit.hs reorg 2015-12-15 15:34:28 -04:00
Locations.hs improve name of keys database lock file 2015-12-31 13:28:18 -04:00
Logs.hs rethought distributed fsck; instead add activity.log and expire command 2015-04-05 12:50:02 -04:00
Makefile defer find to after build 2015-12-28 17:14:29 -04:00
Messages.hs whereis --json: Make url list be included in machine-parseable form. 2016-01-06 12:33:32 -04:00
NEWS update NEWS 2012-01-19 15:27:39 -04:00
README use https 2014-11-06 14:20:10 -04:00
Remote.hs enableremote: List uuids and descriptions of remotes that can be enabled, and accept either the uuid or the description in leu if the name. 2015-10-26 14:55:40 -04:00
Setup.hs improve warning 2015-11-03 11:06:33 -04:00
stack.yaml remove Inotify build flag 2015-12-28 14:46:01 -04:00
Test.hs defer deletion of test repos until end, fixes sqlite crash 2016-01-08 16:14:39 -04:00
Types.hs update my email address and homepage url 2015-01-21 12:50:09 -04:00
Upgrade.hs Use git-annex init --version=6 to get v6 for now 2015-12-15 17:17:13 -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/>