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 9a2c8757f3
add thirdPartyPopulated interface
This is to support, eg a borg repo as a special remote, which is
populated not by running git-annex commands, but by using borg. Then
git-annex sync lists the content of the remote, learns which files are
annex objects, and treats those as present in the remote.

So, most of the import machinery is reused, to a new purpose. While
normally importtree maintains a remote tracking branch, this does not,
because the files stored in the remote are annex object files, not
user-visible filenames. But, internally, a git tree is still generated,
of the files on the remote that are annex objects. This tree is used
by retrieveExportWithContentIdentifier, etc. As with other import/export
remotes, that  the tree is recorded in the export log, and gets grafted
into the git-annex branch.

importKey changed to be able to return Nothing, to indicate when an
ImportLocation is not an annex object and so should be skipped from
being included in the tree.

It did not seem to make sense to have git-annex import do this, since
from the user's perspective, it's not like other imports. So only
git-annex sync does it.

Note that, git-annex sync does not yet download objects from such
remotes that are preferred content. importKeys is run with
content downloading disabled, to avoid getting the content of all
objects. Perhaps what's needed is for seekSyncContent to be run with these
remotes, but I don't know if it will just work (in particular, it needs
to avoid trying to transfer objects to them), so I skipped that for now.

(Untested and unused as of yet.)

This commit was sponsored by Jochen Bartl on Patreon.
2020-12-18 15:23:58 -04:00
Annex add thirdPartyPopulated interface 2020-12-18 15:23:58 -04:00
Assistant propagate git-annex -c on to transferrer child process 2020-12-15 11:36:25 -04:00
Backend convert getFileSize to RawFilePath 2020-11-05 11:32:57 -04:00
Build OSXMkLibs: skip @loader_path 2020-12-15 12:47:24 -04:00
CmdLine improve synopsis 2020-12-17 12:51:49 -04:00
Command add thirdPartyPopulated interface 2020-12-18 15:23:58 -04:00
Config rename and refactor 2020-12-14 12:32:21 -04:00
Database enable extensions needed by new version of persistent 2020-11-07 14:09:17 -04:00
debian Enable building with git-annex benchmark by default 2020-10-02 13:57:10 -04:00
doc update 2020-12-18 11:06:23 -04:00
Git finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Limit split ProvidedInfo and UserProvidedInfo 2020-09-28 12:12:38 -04:00
Logs importtree only remotes are untrusted, same as exporttree remotes 2020-12-17 13:45:07 -04:00
Messages simplify transferr protocol 2020-12-11 12:52:22 -04:00
P2P use TotalSize more extensively 2020-12-11 12:10:43 -04:00
Remote add thirdPartyPopulated interface 2020-12-18 15:23:58 -04:00
RemoteDaemon add back git-annex branch read cache 2020-07-06 12:22:33 -04:00
standalone bump filepath-bytestring dep 2020-11-11 11:49:19 -04:00
static
templates
Test improve display of test failures 2020-11-24 17:17:09 -04:00
Types add thirdPartyPopulated interface 2020-12-18 15:23:58 -04:00
Upgrade finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Utility Windows: include= and exclude= containing '/' will also match filenames that are written using '\' 2020-12-15 12:39:34 -04:00
.ghci
.gitattributes
.gitignore stack.yaml: Updated to lts-16.10 2020-08-24 14:11:37 -04:00
.mailmap
Annex.hs pass along -c options to child git-annex processes 2020-12-15 10:49:29 -04:00
Assistant.hs Fix build on Windows 2020-11-19 12:33:00 -04:00
Backend.hs more RawFilePath conversion 2020-10-29 14:20:57 -04:00
bash-completion.bash
Benchmark.hs remove reapZombies 2020-09-25 11:50:38 -04:00
BuildFlags.hs Removed the S3 and WebDAV build flags 2020-09-08 12:42:59 -04:00
BuildInfo.hs
CHANGELOG Windows: include= and exclude= containing '/' will also match filenames that are written using '\' 2020-12-15 12:39:34 -04:00
CmdLine.hs audit all uses of SomeException to avoid catching async exceptions 2020-06-05 15:16:57 -04:00
Command.hs more RawFilePath conversion 2020-10-30 15:55:59 -04:00
Common.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Config.hs more RawFilePath conversion 2020-10-29 10:50:29 -04:00
COPYRIGHT add a few missing copyrights 2020-10-13 12:21:38 -04:00
Creds.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Crypto.hs fix strictness issue 2020-06-16 17:09:34 -04:00
git-annex.cabal factor out Types.Transferrer 2020-12-09 13:28:49 -04:00
git-annex.hs include git-annex-shell back in 2019-12-02 11:51:52 -04:00
git-union-merge.hs
Git.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Key.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
Limit.hs Windows: include= and exclude= containing '/' will also match filenames that are written using '\' 2020-12-15 12:39:34 -04:00
Logs.hs cache one more log file for metadata 2020-07-07 14:18:55 -04:00
Makefile OSXMkLibs: skip @loader_path 2020-12-15 12:47:24 -04:00
Messages.hs extend transferrer protocol to send progress bar total size updates 2020-12-11 12:42:28 -04:00
NEWS fix dist in latest NEWS entry 2020-09-14 12:05:12 -04:00
README
Remote.hs refactoring 2020-12-07 14:49:17 -04:00
Setup.hs
stack.yaml update to lts-16.16 2020-10-02 16:39:10 -04:00
Test.hs improve display of test failures 2020-11-24 17:17:09 -04:00
Types.hs
Upgrade.hs propagate git-annex -c on to transferrer child process 2020-12-15 11:36:25 -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/>