summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* git annex get from exportsGravatar Joey Hess2017-09-04
| | | | | | | | | | | | | | Straightforward enough, except for the needed belt-and-suspenders sanity checks to avoid foot shooting due to exports not being key/value stores. * Even when annex.verify=false, always verify from exports. * Only get files from exports that use a backend that supports checksum verification. * Never trust exports, even if the user says to, because then `git annex drop` would drop content if the export seemed to contain a copy. This commit was supported by the NSF-funded DataLad project.
* use export db to correctly handle duplicate filesGravatar Joey Hess2017-09-04
| | | | | | | | | | | | | | | | | Removed uncorrect UniqueKey key in db schema; a key can appear multiple times with different files. The database has to be flushed after each removal. But when adding files to the export, lots of changes are able to be queued up w/o flushing. So it's still fairly efficient. If large removals of files from exports are too slow, an alternative would be to make two passes over the diff, one pass queueing deletions from the database, then a flush and the a second pass updating the location log. But that would use more memory, and need to look up exportKey twice per removed file, so I've avoided such optimisation yet. This commit was supported by the NSF-funded DataLad project.
* update for exportGravatar Joey Hess2017-09-04
|
* flush queued changes to export db on exitGravatar Joey Hess2017-09-04
|
* remove some backtraces on user errorsGravatar Joey Hess2017-09-04
|
* track exported files in a sqlite databaseGravatar Joey Hess2017-09-04
| | | | | | | | | Went with a separate db per export remote, rather than a single export database. Mostly because there will probably not be a lot of separate export remotes, and it might be convenient to be able to delete a given remote's export database. This commit was supported by the NSF-funded DataLad project.
* implement exporttree=yes configurationGravatar Joey Hess2017-09-04
| | | | | | | | | | | | | | | | * Only export to remotes that were initialized to support it. * Prevent storing key/value on export remotes. * Prevent enabling exporttree=yes and encryption in the same remote. SetupStage Enable was changed to take the old RemoteConfig. This allowed only setting exporttree when initially setting up a remote, and not configuring it later after stuff might already be stored in the remote. Went with =yes rather than =true for consistency with other parts of git-annex. Changed docs accordingly. This commit was supported by the NSF-funded DataLad project.
* refactor ExportActionsGravatar Joey Hess2017-09-01
| | | | | | | | This will allow disabling exports for remotes that are not configured to allow them. Also, exportSupported will be useful for the external special remote to probe. This commit was supported by the NSF-funded DataLad project
* graft exported tree into git-annex branchGravatar Joey Hess2017-08-31
| | | | | | | | | | | So it will be available later and elsewhere, even after GC. I first though to use git update-index to do this, but feeding it a line with a tree object seems to always cause it to generate a git subtree merge. So, fell back to using the Git.Tree interface to maniupulate the trees, and not involving the git-annex branch index file at all. This commit was sponsored by Andreas Karlsson.
* implement export.log and resolve export conflictsGravatar Joey Hess2017-08-31
| | | | | | Incremental export updates work now too. This commit was sponsored by Anthony DeRobertis on Patreon.
* make storeExport atomicGravatar Joey Hess2017-08-31
| | | | | | | | | | | | | | | | | | This avoids needing to deal with the complexity of partially transferred files in the export. We'd not be able to resume uploading to such a file anyway, so just avoid them. The implementation in Remote.Directory is not completely ideal, because it could leave the temp file hanging around in the export directory. This only happens if it's killed with -9, or there's a power failure; normally viaTmp cleans up after itself, even when interrupted. I could not see a better way to do it though, since the export directory might be the root of a filesystem. Also some design thoughts on resuming, which depend on storeExport being atomic. This commit was sponsored by Fernando Jimenez on Partreon.
* resuming exportsGravatar Joey Hess2017-08-31
| | | | | | | | | | | | | Make a pass over the whole exported tree, and upload anything that has not yet reached the export. Update location log when exporting. Note that the synthesized keys for non-annexed files are stored in the location log too. Some cases involving files in the tree with the same content are not handled correctly yet. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
* improve typeGravatar Joey Hess2017-08-31
|
* fix error message when content to export is not locally availableGravatar Joey Hess2017-08-31
|
* remove empty parent dirs when removing from exportGravatar Joey Hess2017-08-31
|
* Merge branch 'master' into exportGravatar Joey Hess2017-08-31
|\
| * a few tweaks to the designGravatar Joey Hess2017-08-30
| |
| * initial bug reportGravatar yarikoptic2017-08-30
| |
| * Added a commentGravatar vgp2017-08-30
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2017-08-29
| |\
| * | devblogGravatar Joey Hess2017-08-29
| | |
* | | initial export commandGravatar Joey Hess2017-08-29
| | | | | | | | | | | | | | | | | | Very basic operation works, but of course this is only the beginning. This commit was sponsored by Nick Daly on Patreon.
* | | provide file with content to exportGravatar Joey Hess2017-08-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than providing the key to export, provide the file. When exporting a treeish that contains files that are not annexed, this will let the content of those files also be exported. There's still a Key in the interface; it will be used by the external special remote protocol. A SHA1 key can be used when exporting non-annexed files. This commit was sponsored by Brock Spratlen on Patreon.
* | | documentation for exportGravatar Joey Hess2017-08-29
| | | | | | | | | | | | This commit was sponsored by Ole-Morten Duesund on Patreon.
* | | add API for exportingGravatar Joey Hess2017-08-29
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented so far for the directory special remote. Several remotes don't make sense to export to. Regular Git remotes, obviously, do not. Bup remotes almost certianly do not, since bup would need to be used to extract the export; same store for Ddar. Web and Bittorrent are download-only. GCrypt is always encrypted so exporting to it would be pointless. There's probably no point complicating the Hook remotes with exporting at this point. External, S3, Glacier, WebDAV, Rsync, and possibly Tahoe should be modified to support export. Thought about trying to reuse the storeKey/retrieveKeyFile/removeKey interface, rather than adding a new interface. But, it seemed better to keep it separate, to avoid a complicated interface that sometimes encrypts/chunks key/value storage and sometimes users non-key/value storage. Any common parts can be factored out. Note that storeExport is not atomic. doc/design/exporting_trees_to_special_remotes.mdwn has some things in the "resuming exports" section that bear on this decision. Basically, I don't think, at this time, that an atomic storeExport would help with resuming, because exports are not key/value storage, and we can't be sure that a partially uploaded file is the same content we're currently trying to export. Also, note that ExportLocation will always use unix path separators. This is important, because users may export from a mix of windows and unix, and it avoids complicating the API with path conversions, and ensures that in such a mix, they always use the same locations for exports. This commit was sponsored by Bruno BEAUFILS on Patreon.
| * Added a commentGravatar supernaught2017-08-28
|/
* simplifyGravatar Joey Hess2017-08-28
| | | | Key is needed to use in reply
* update proposed external special remote protocolGravatar Joey Hess2017-08-28
|
* fix linkGravatar Joey Hess2017-08-28
|
* formattingGravatar Joey Hess2017-08-28
|
* typoGravatar Joey Hess2017-08-28
|
* commentGravatar Joey Hess2017-08-28
|
* responseGravatar Joey Hess2017-08-28
|
* responseGravatar Joey Hess2017-08-28
|
* respond and closeGravatar Joey Hess2017-08-28
|
* close bug filed about git-annex from 2014Gravatar Joey Hess2017-08-28
|
* responseGravatar Joey Hess2017-08-28
|
* init: Display an additional message when it detects a filesystem that allows ↵Gravatar Joey Hess2017-08-28
| | | | writing to files whose write bit is not set.
* responseGravatar Joey Hess2017-08-28
|
* commentGravatar Joey Hess2017-08-28
|
* remove links to trees of files, as they confuse users and prevent them ↵Gravatar Joey Hess2017-08-28
| | | | reading the instructions before downloading
* commentGravatar Joey Hess2017-08-28
|
* closeGravatar Joey Hess2017-08-28
|
* responseGravatar Joey Hess2017-08-28
|
* toFeed was unused so removeGravatar Joey Hess2017-08-28
|
* Support building with feed-1.0, while still supporting older versions.Gravatar Joey Hess2017-08-28
| | | | This commit was sponsored by Jeff Goeke-Smith on Patreon.
* (no commit message)Gravatar marek@33e8ba4fbc201af14a2badcc0656024401f5c9162017-08-28
|
* Added a comment: For stretch on armhf, install from unstableGravatar Alan2017-08-28
|
* Added a comment: No package for armhf on stretchGravatar Alan2017-08-28
|
* (no commit message)Gravatar hugo2017-08-27
|