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 58f727afdd resume interrupted chunked uploads
Leverage the new chunked remotes to automatically resume uploads.
Sort of like rsync, although of course not as efficient since this
needs to start at a chunk boundry.

But, unlike rsync, this method will work for S3, WebDAV, external
special remotes, etc, etc. Only directory special remotes so far,
but many more soon!

This implementation will also allow starting an upload from one repository,
interrupting it, and then resuming the upload to the same remote from
an entirely different repository.

Note that I added a comment that storeKey should atomically move the content
into place once it's all received. This was already an undocumented
requirement -- it's necessary for hasKey to work reliably. This resume code
just uses hasKey to find the first chunk that's missing.

Note that if there are two uploads of the same key to the same chunked remote,
one might resume at the point the other had gotten to, but both will then
redundantly upload. As before.

In the non-resume case, this adds one hasKey call per storeKey, and only
if the remote is configured to use chunks. Future work: Try to eliminate that
hasKey. Notice that eg, `git annex copy --to` checks if the key is present
before sending it, so is already running hasKey.. which could perhaps
be cached and reused.

However, this additional overhead is not very large compared with
transferring an entire large file, and the ability to resume
is certianly worth it. There is an optimisation in place for small files,
that avoids trying to resume if the whole file fits within one chunk.

This commit was sponsored by Georg Bauer.
2014-07-28 14:35:52 -04:00
Annex add some more exception handling primitives 2014-07-26 23:24:27 -04:00
Assistant better exception display 2014-07-26 23:01:44 -04:00
Backend add key stability checking interface 2014-07-27 12:33:46 -04:00
Build move git-annex to git/cmd 2014-07-16 18:12:05 -04:00
CmdLine resolvemerge: New plumbing command that runs the automatic merge conflict resolver. 2014-07-11 16:45:18 -04:00
Command fix build with old feed 2014-07-19 18:30:08 -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 resume interrupted chunked downloads 2014-07-27 18:56:32 -04:00
doc Merge branch 'master' of ssh://git-annex.branchable.com into newchunks 2014-07-28 13:03:43 -04:00
Git improve repair of bad branches 2014-07-21 18:42:58 -04:00
Limit fix transfers of key with no associated file 2014-01-23 16:44:02 -04:00
Logs add ChunkMethod type and make Logs.Chunk use it, rather than assuming fixed size chunks (so eg, rolling hash chunks can be supported later) 2014-07-28 13:19:08 -04:00
Messages hlint 2013-04-03 03:52:41 -04:00
Remote resume interrupted chunked uploads 2014-07-28 14:35:52 -04:00
RemoteDaemon export CreateProcess fields from Utility.Process 2014-06-10 19:20:14 -04:00
standalone provide utf-8 locale to avoid silly build failure 2014-07-14 21:18:24 -04:00
static Revert "remove newlines from static js and css" 2014-06-13 02:20:39 -04:00
templates better fix for modal 2014-07-14 17:45:21 -04:00
Types resume interrupted chunked uploads 2014-07-28 14:35:52 -04:00
Upgrade add chunk metadata to Key 2014-07-24 13:36:23 -04:00
Utility resume interrupted chunked downloads 2014-07-27 18:56:32 -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 gitignore Build/BuildVersion 2014-06-18 14:43:20 -04:00
.mailmap seed .mailmap file for more sensible git shortlog 2014-01-18 15:50:57 -04:00
Annex.hs fix for Windows file timestamp timezone madness 2014-06-12 13:42:21 -04:00
Assistant.hs missing lift 2014-07-16 16:14:51 -04:00
Backend.hs add key stability checking interface 2014-07-27 12:33:46 -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 symlinks 2010-10-27 15:14:59 -04:00
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 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 webapp: Fix UI for removing XMPP connection. 2014-04-20 12:46:33 -04:00
Crypto.hs Support for remotes that are chunkable and encryptable. 2014-07-26 20:14:31 -04:00
ghci brought back fast ghci 2013-02-27 21:38:01 -04:00
git-annex.cabal prep release 2014-07-17 11:37:21 -04:00
git-annex.hs unset TZ on Windows 2014-06-12 14:21:53 -04:00
git-union-merge.hs factor out nukeFile 2012-06-06 13:13:13 -04:00
Git.hs remove Read instance for Ref 2014-02-19 01:19:57 -04:00
INSTALL symlinks 2010-10-27 15:14:59 -04:00
Limit.hs replace (Key, Backend) with Key 2014-04-17 18:03:39 -04:00
Locations.hs use same hash directories for chunked key as are used for its parent 2014-07-25 16:09:23 -04:00
Logs.hs implement chunk logs 2014-07-24 16:23:36 -04:00
Makefile better way to generate tags 2014-07-01 15:11:47 -04:00
Messages.hs refactor 2014-01-26 15:53:01 -04:00
NEWS update NEWS 2012-01-19 15:27:39 -04:00
README add README 2011-05-13 19:20:54 -04:00
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 Deal with change in git 2.0 that made indirect mode merge conflict resolution leave behind old files. 2014-07-11 16:56:19 -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/>