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 95ca3bb022 Fix encoding of data written to git-annex branch. Avoid truncating unicode characters to 8 bits.
Allow any encoding to be used, as with filenames (but utf8 is the sane
choice). Affects metadata and repository descriptions, and preferred
content expressions.

The question of what's the right encoding for the git-annex branch is a
vexing one. utf-8 would be a nice choice, but this leaves the possibility
of bad data getting into a git-annex branch somehow, and this resulting in
git-annex crashing with encoding errors, which is a failure mode I want to
avoid.

(Also, preferred content expressions can refer to filenames, and filenames
can have any encoding, so limiting to utf-8 would not be ideal.)

The union merge code already took care to not assume any encoding for a
file. Except it assumes that any \n is a literal newline, and not part of
some encoding of a character that happens to contain a newline. (At least
utf-8 avoids using newline for anything except liternal newlines.)
Adapted the git-annex branch code to use this same approach.

Note that there is a potential interop problem with Windows, since
FileSystemEncoding doesn't work there, and instead things are always
decoded as utf-8. If someone uses non-utf8 encoding for data on the
git-annex branch, this can lead to an encoding error on windows. However,
this commit doesn't actually make that any worse, because the union merge
code would similarly fail with an encoding error on windows in that
situation.

This commit was sponsored by Kyle Meyer.
2014-05-27 14:16:33 -04:00
Annex Fix encoding of data written to git-annex branch. Avoid truncating unicode characters to 8 bits. 2014-05-27 14:16:33 -04:00
Assistant better work around for broken ghc in debian stable and some ubuntus 2014-05-23 13:00:29 -04:00
Backend bring back the (checksum) when fscking 2014-02-20 16:06:51 -04:00
Build proper fix for "foo"# -- need MagicHash extension 2014-05-25 23:27:48 -04:00
CmdLine support being run by ssh as ssh-askpass replacement 2014-04-29 18:08:10 -04:00
Command webapp: More robust startup when annex directory is not a git repo or not intialized by git-annex. 2014-05-21 15:41:54 -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 reorg 2014-01-21 18:08:56 -04:00
debian Fix encoding of data written to git-annex branch. Avoid truncating unicode characters to 8 bits. 2014-05-27 14:16:33 -04:00
doc Fix encoding of data written to git-annex branch. Avoid truncating unicode characters to 8 bits. 2014-05-27 14:16:33 -04:00
Git Merge branch 'master' into remotecontrol 2014-04-14 13:38:35 -04:00
Limit fix transfers of key with no associated file 2014-01-23 16:44:02 -04:00
Logs Added required content configuration. 2014-03-29 16:03:33 -04:00
Messages hlint 2013-04-03 03:52:41 -04:00
Remote initremote/enableremote: Basic support for using with regular git remotes 2014-05-22 13:42:17 -04:00
RemoteDaemon fix RELOAD 2014-04-20 15:45:14 -04:00
standalone fix gnutls to link, again 2014-05-26 17:56:41 -04:00
static update bootstrap files to bootstrap3 2014-04-21 19:05:09 +02:00
templates reword 2014-05-15 21:45:36 -04:00
Types execute remote.<name>.annex-shell on remote, if set 2014-05-16 15:46:43 -04:00
Upgrade remove Read instance for Ref 2014-02-19 01:19:57 -04:00
Utility refactor 2014-05-14 17:31:20 -04:00
.ghci
.gitattributes
.gitignore .gitignore: add cabal sandbox dir and config files 2014-04-08 23:37:04 +10:00
.mailmap seed .mailmap file for more sensible git shortlog 2014-01-18 15:50:57 -04:00
Annex.hs factor out getRemoteGitConfig 2014-05-16 16:08:20 -04:00
Assistant.hs setsid when running webapp in foreground too 2014-05-14 14:26:28 -04:00
Backend.hs replace (Key, Backend) with Key 2014-04-17 18:03:39 -04:00
build.bat windows build foo 2013-12-05 20:40:28 -04:00
BuildFlags.hs add desktop notifications 2014-03-22 14:12:19 -04:00
CHANGELOG
Checks.hs reorg 2014-01-26 16:36:31 -04:00
CmdLine.hs only run sshCleanup when the command actually used ssh connection caching 2014-03-13 19:30:13 -04:00
Command.hs replace (Key, Backend) with Key 2014-04-17 18:03:39 -04:00
Common.hs add missing Network.URI Ord instance for Debian stable 2014-04-14 13:25:49 -04:00
Config.hs cleaned up AnnexState handling in transports 2014-04-08 13:42:57 -04:00
configure.hs
COPYRIGHT
Creds.hs webapp: Fix UI for removing XMPP connection. 2014-04-20 12:46:33 -04:00
Crypto.hs Fix initremote with encryption=pubkey to work with S3, glacier, webdav, and external special remotes. 2014-02-06 18:25:31 -04:00
ghci brought back fast ghci 2013-02-27 21:38:01 -04:00
git-annex.cabal prep release 2014-05-17 13:31:42 -04:00
git-annex.hs fix windows env hack 2014-02-14 14:22:57 -04:00
git-union-merge.hs
Git.hs remove Read instance for Ref 2014-02-19 01:19:57 -04:00
INSTALL
Limit.hs replace (Key, Backend) with Key 2014-04-17 18:03:39 -04:00
Locations.hs unannex, uninit: Avoid committing after every file is unannexed, for massive speedup. 2014-03-21 14:41:05 -04:00
Logs.hs reorg matcher types; no non-type code changes 2014-03-29 14:43:34 -04:00
Makefile proper fix for "foo"# -- need MagicHash extension 2014-05-25 23:27:48 -04:00
Messages.hs refactor 2014-01-26 15:53:01 -04:00
NEWS
README
Remote.hs assistant: When there are multiple remotes giving different ways to access the same repository, honor remote cost settings and use the cheapest available. 2014-05-19 16:19:33 -04:00
Setup.hs make configure -Wall clean 2014-03-10 16:59:38 -04:00
Test.hs replace (Key, Backend) with Key 2014-04-17 18:03:39 -04:00
Types.hs moved AssociatedFile definition 2013-07-04 02:36:02 -04:00
Upgrade.hs Auto-upgrade v3 indirect repos to v5 with no changes. This also fixes a problem when a direct mode repo was somehow set to v3 rather than v4, and so the automatic direct mode upgrade to v5 was not done. 2013-12-29 13:06:23 -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 <http://git-annex.branchable.com/>