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 1e31bf8122
copy/move --from-anywhere --to remote
Implementation was simple because it's equivilant to
--from=foo --to remote for each other remote, followed by
--to remote when there's a local copy.

(Or, in the edge case of --from-anywhere --to=here,
it's the same as --to=here.)

Note that, when the local repo does not have a copy,
fromToPerform gets it from a remote, sends it to the destination,
and drops the local copy. Another call to that for a second remote
will notice that the dest now has a copy, and simply drop from the
second remote, avoiding a second transfer.

Also note that, when numcopies doesn't allow dropping it from
everywhere, it will drop it from the cheapest remotes first
(maybe not ideal) up to more expensive remotes, and finally from the local
repo. So the local repo will generally end up holding a copy. Maybe not
ideal in all cases either, but it seems no worse to do that than to end up
with a copy undropped from a remote.

And I'm not entirely happy with the output, eg:

	copy bigfile (from r3...) ok
	copy bigfile ok

That makes sense if you think of the second line as being
the same as what is output by `git-annex copy bigfile --to bar`,
but it's less clear in this context. Maybe add "(from here...)"?
Also the --json output doesn't have a machine-readable field for
the "from" uuid, and maybe it should?

Sponsored-by: Dartmouth College's DANDI project
2023-11-30 16:34:30 -04:00
Annex fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Assistant fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Backend
Build use unshorted hash in version 2023-09-20 09:31:59 -04:00
CmdLine copy/move --from-anywhere --to remote 2023-11-30 16:34:30 -04:00
Command copy/move --from-anywhere --to remote 2023-11-30 16:34:30 -04:00
Config
Database avoid unused import 2023-10-26 14:00:21 -04:00
debian Removed the vendored git-lfs and the GitLfs build flag 2023-08-28 13:12:31 -04:00
doc copy/move --from-anywhere --to remote 2023-11-30 16:34:30 -04:00
Git split out generic git log parser 2023-11-10 15:40:03 -04:00
Limit initial implementation of --explain 2023-07-25 16:52:57 -04:00
Logs newtype MapLog 2023-11-13 14:37:22 -04:00
Messages
P2P
Remote convert StorableCipher to ByteString 2023-11-01 14:39:49 -04:00
RemoteDaemon remove unused import 2023-08-28 12:35:57 -04:00
standalone enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
static
templates
Test display summary after concurrent output is complete 2023-10-26 14:19:41 -04:00
Types convert StorableCipher to ByteString 2023-11-01 14:39:49 -04:00
Upgrade
Utility attribution armoring 2023-11-29 14:42:44 -04:00
.appveyor.yml windows back to lts-18.13 temporarily 2023-08-02 12:49:38 -04:00
.codespellrc
.ghci
.gitattributes
.gitignore
.mailmap
Annex.hs initial implementation of --explain 2023-07-25 16:52:57 -04:00
Assistant.hs
Author.hs improve attribution armoring 2023-11-21 11:34:21 -04:00
Backend.hs
bash-completion.bash
Benchmark.hs
BuildFlags.hs Support being built with crypton rather than cryptonite 2023-09-21 12:43:42 -04:00
BuildInfo.hs
CHANGELOG copy/move --from-anywhere --to remote 2023-11-30 16:34:30 -04:00
CmdLine.hs Adapt code to optparse-applicative 0.18.1 and later. 2023-06-21 11:51:04 -04:00
Command.hs
Common.hs
Config.hs
COPYRIGHT Removed the vendored git-lfs and the GitLfs build flag 2023-08-28 13:12:31 -04:00
Creds.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Crypto.hs convert StorableCipher to ByteString 2023-11-01 14:39:49 -04:00
git-annex.cabal add manual: true to ParallelBuild flag 2023-11-29 16:05:03 -04:00
git-annex.hs
git-union-merge.hs
Git.hs
Key.hs
Limit.hs Fix behavior of onlyingroup 2023-08-07 13:05:11 -04:00
Logs.hs
Makefile remove vim dev hack 2023-10-20 12:50:31 -04:00
Messages.hs Windows: Consistently avoid ending output lines with CR 2023-10-30 14:43:43 -04:00
NEWS prep release 2023-06-26 10:41:36 -04:00
README
Remote.hs fix --from overriding annex-ignore 2023-11-30 15:12:07 -04:00
Setup.hs Setup.hs: Stop installing man pages, desktop files, and the git-annex-shell and git-remote-tor-annex symlinks 2023-08-01 15:08:56 -04:00
stack-lts-18.13.yaml enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
stack.yaml enable parallel ghc for building git-annex 2023-09-26 13:46:44 -04:00
Test.hs simplify base64 to only use ByteString 2023-10-26 13:10:05 -04:00
Types.hs
Upgrade.hs don't say a supported version is unsupported 2023-10-09 14:26:24 -04:00

git-annex allows managing large files with git, without storing the file
contents in git. It can sync, backup, and archive your data, offline
and online. Checksums and encryption keep your data safe and secure. Bring
the power and distributed nature of git to bear on your large files with
git-annex.

For documentation, see doc/ or <https://git-annex.branchable.com/>