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 2aae6e84af
Support newlines in filenames.
Work around git cat-file --batch's protocol not supporting newlines by
running git cat-file not batched and passing the filename as a
parameter.

Of course this is quite a lot less efficient, especially because it
currently runs it multiple times to query for different pieces of
information.

Also, it has subtly different behavior when the batch process was
started and then some changes were made, in which case the batch process
sees the old index but this workaround sees the current index. Since
that batch behavior is mostly a problem that affects the assistant and has
to be worked around in it, I think I can get away with this difference.

I don't know of any other problems with newlines in filenames, everything
else in git I can think of supports -z. And git-annex's json output
supports newlines in filenames so downstream parsers from git-annex will be ok.
git-annex commands that use --batch themselves don't support newlines
in input filenames; using --json --batch is currently a way around that
problem.

This commit was sponsored by Ewen McNeill on Patreon.
2018-09-20 13:45:44 -04:00
Annex fix build with older ghc 2018-09-12 14:10:08 -04:00
Assistant added annex.commitmessage 2018-08-02 14:06:06 -04:00
Backend stop using external hash programs, since cryptonite is faster 2018-08-28 18:10:58 -04:00
Build stop using external hash programs, since cryptonite is faster 2018-08-28 18:10:58 -04:00
CmdLine avoid duplicate add action for v6 unlocked modified file 2018-09-12 15:20:34 -04:00
Command avoid duplicate add action for v6 unlocked modified file 2018-09-12 15:20:34 -04:00
Config fix syntax 2018-08-29 09:20:25 -04:00
Database fix v6 deadlock with git 2.1.4 2018-09-13 13:55:25 -04:00
debian BF: refreshed debian/patches/standalone-build for addition of netbase 2018-09-19 15:28:59 -04:00
doc Support newlines in filenames. 2018-09-20 13:45:44 -04:00
Git Support newlines in filenames. 2018-09-20 13:45:44 -04:00
Limit AssociatedFile newtype 2017-03-10 13:35:31 -04:00
Logs dropdead per-remote metadata 2018-09-05 13:52:46 -04:00
Messages Fix mangling of --json output of utf-8 characters when not running in a utf-8 locale 2018-04-16 16:21:21 -04:00
P2P clean P2P protocol shutdown on EOF 2018-09-13 10:46:37 -04:00
Remote S3: Fix url construction bug 2018-09-14 12:25:23 -04:00
RemoteDaemon move protocol version stuff to the Net free monad 2018-03-12 15:20:51 -04:00
standalone linux standalone: When LOCPATH is already set, use it instead of the bundled locales. 2018-08-20 12:20:54 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates version: Added "dependency versions" line. 2017-04-07 18:16:11 -04:00
Test Split Test.hs and avoid optimising it much, to need less memory to compile. 2018-02-18 11:48:48 -04:00
Types dropdead per-remote metadata 2018-09-05 13:52:46 -04:00
Upgrade run git status before enabling clean filter 2018-08-28 10:36:22 -04:00
Utility Support newlines in filenames. 2018-09-20 13:45:44 -04:00
.ghci workaround for ghci fragility in reusing objects compiled with ghc 2012-10-20 16:20:42 -04:00
.gitattributes update changelog location 2016-08-22 23:54:11 -04:00
.gitignore Make Build/BuildVersion update embedded version number 2018-06-26 10:36:54 -04:00
.mailmap alias for Yaroslav @ yahoo to mailmap 2015-09-09 12:38:59 -04:00
Annex.hs fix git command queue to be concurrency safe 2018-08-28 13:16:33 -04:00
Assistant.hs fold Build/SysConfig.hs into BuildInfo via include 2017-12-14 12:46:57 -04:00
Backend.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
bash-completion.bash update from optparse-applicative output 2017-06-09 11:30:24 -04:00
build.bat let build.bat also be run from cygwin terminal 2015-04-21 14:12:14 -04:00
BuildFlags.hs split BuildInfo and BuildFlags 2018-01-02 13:47:51 -04:00
BuildInfo.hs Make Build/BuildVersion update embedded version number 2018-06-26 10:36:54 -04:00
CHANGELOG Support newlines in filenames. 2018-09-20 13:45:44 -04:00
CmdLine.hs Make --json and --quiet suppress automatic init messages 2016-09-05 15:34:38 -04:00
Command.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Common.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
Config.hs run git status before enabling clean filter 2018-08-28 10:36:22 -04:00
COPYRIGHT merge spwhitton's s/MIT/Expat/ change 2018-07-11 16:08:23 -04:00
Creds.hs finish git-annex enable-tor 2016-11-29 17:30:27 -04:00
Crypto.hs add KeyVariety type 2017-02-24 15:16:56 -04:00
ghci avoid tab warnings from ghc 8 2016-11-17 13:39:30 -04:00
git-annex.cabal releasing package git-annex version 6.20180913 2018-09-13 15:50:50 -04:00
git-annex.hs windows build fix 2018-01-09 11:51:17 -04:00
git-union-merge.hs Always use filesystem encoding for all file and handle reads and writes. 2016-12-24 14:46:31 -04:00
Git.hs Propigate GIT_DIR and GIT_WORK_TREE environment to external special remotes. 2016-05-06 12:26:44 -04:00
Jenkinsfile Revert "debugging strange old version of git-annex in windows installer bundle" 2017-10-26 11:32:04 -04:00
Key.hs Fix mangling of --json output of utf-8 characters when not running in a utf-8 locale 2018-04-16 16:21:21 -04:00
Limit.hs Added --accessedwithin matching option. 2018-08-01 15:34:03 -04:00
Logs.hs dropdead per-remote metadata 2018-09-05 13:52:46 -04:00
Makefile deal with the persistent locpath issue 2018-07-10 12:13:19 -04:00
Messages.hs Added INFO to external special remote protocol. 2018-02-06 13:03:55 -04:00
NEWS update version 2018-06-21 14:56:04 -04:00
README use https 2014-11-06 14:20:10 -04:00
Remote.hs cache remotes via annex-speculate-present 2018-08-01 14:28:05 -04:00
Setup.hs Added git-remote-tor-annex, which allows git pull and push to the tor hidden service. 2016-11-21 17:27:38 -04:00
stack-windows.yaml git-annex.cabal: Fix network version. 2018-07-01 13:07:24 -04:00
stack.yaml git-annex.cabal: Fix network version. 2018-07-01 13:07:24 -04:00
Test.hs limit url downloads to whitelisted schemes 2018-06-16 11:57:50 -04:00
Types.hs better dup key with -J fix 2017-10-17 18:48:53 -04:00
Upgrade.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -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/>