summaryrefslogtreecommitdiff
path: root/Remote
Commit message (Collapse)AuthorAge
* use existing chunks even when chunk=0Gravatar Joey Hess2014-07-27
| | | | | | | | | | When chunk=0, always try the unchunked key first. This avoids the overhead of needing to read the git-annex branch to find the chunkcount. However, if the unchunked key is not present, go on and try the chunks. Also, when removing a chunked key, update the chunkcounts even when chunk=0.
* reorgGravatar Joey Hess2014-07-27
|
* comment typoGravatar Joey Hess2014-07-27
|
* faster storeChunksGravatar Joey Hess2014-07-27
| | | | | | | | | | | No need to process each L.ByteString chunk, instead ask it to split. Doesn't seem to have really sped things up much, but it also made the code simpler. Note that this does (and already did) buffer in memory. It seems that only the directory special remote could take advantage of streaming chunks to files w/o buffering, so probably won't add an interface to allow for that.
* better Preparer interfaceGravatar Joey Hess2014-07-27
| | | | | | | This will allow things like WebDAV to opean a single persistent connection and reuse it for all the chunked data. The crazy types allow for some nice code reuse.
* improve exception handlingGravatar Joey Hess2014-07-26
| | | | | | | | Push it down from needing to be done in every Storer, to being checked once inside ChunkedEncryptable. Also, catch exceptions from PrepareStorer and PrepareRetriever, just in case..
* better exception displayGravatar Joey Hess2014-07-26
|
* fix key checking when a directory special remote's directory is missingGravatar Joey Hess2014-07-26
| | | | | The best thing to do in this case is return Left, so that anything that tries to access it will fail.
* fix another fallback bugGravatar Joey Hess2014-07-26
|
* allM has slightly better memory useGravatar Joey Hess2014-07-26
|
* fix fallback to other chunk size when first does not have itGravatar Joey Hess2014-07-26
|
* fix buildGravatar Joey Hess2014-07-26
|
* fix buildGravatar Joey Hess2014-07-26
|
* convert directory special remote to using ChunkedEncryptableGravatar Joey Hess2014-07-26
| | | | | | | | And clean up legacy chunking code, which is in its own module now. So much cleaner! This commit was sponsored by Henrik Ahlgren
* Support for remotes that are chunkable and encryptable.Gravatar Joey Hess2014-07-26
| | | | | | | | | | | | | | | | I'd have liked to keep these two concepts entirely separate, but that are entagled: Storing a key in an encrypted and chunked remote need to generate chunk keys, encrypt the keys, chunk the data, encrypt the chunks, and send them to the remote. Similar for retrieval, etc. So, here's an implemnetation of all of that. The total win here is that every remote was implementing encrypted storage and retrival, and now it can move into this single place. I expect this to result in several hundred lines of code being removed from git-annex eventually! This commit was sponsored by Henrik Ahlgren.
* finish up basic chunked remote groundworkGravatar Joey Hess2014-07-26
| | | | | | | Chunk retrieval and reassembly, removal, and checking if all necessary chunks are present. This commit was sponsored by Damien Raude-Morvan.
* reorgGravatar Joey Hess2014-07-26
|
* Merge branch 'master' into newchunksGravatar Joey Hess2014-07-26
|\
| * Fix cost calculation for non-encrypted remotes.Gravatar Joey Hess2014-07-25
| | | | | | | | | | | | Encyptable types of remotes that were not actually encrypted still had the encryptedRemoteCostAdj applied to their configured cost, which was a bug.
* | support new style chunking in directory special remoteGravatar Joey Hess2014-07-25
| | | | | | | | | | | | | | Only when storing non-encrypted so far, not retrieving or checking if a key is present or removing. This commit was sponsored by Renaud Casenave-Péré.
* | core implementation of new style chunkingGravatar Joey Hess2014-07-25
|/ | | | | | | | | | | | | | | | Not yet used by any special remotes, but should not be too hard to add it to most of them. storeChunks is the hairy bit! It's loosely based on Remote.Directory.storeLegacyChunked. The object is read in using a lazy bytestring, which is streamed though, creating chunks as needed, without ever buffering more than 1 chunk in memory. Getting the progress meter update to work right was also fun, since progress meter values are absolute. Finessed by constructing an offset meter. This commit was sponsored by Richard Collins.
* move meteredWriteFileChunks out of legacyGravatar Joey Hess2014-07-24
|
* implement chunk logsGravatar Joey Hess2014-07-24
| | | | | | | Slightly tricky as they are not normal UUIDBased logs, but are instead maps from (uuid, chunksize) to chunkcount. This commit was sponsored by Frank Thomas.
* improve chunk data typesGravatar Joey Hess2014-07-24
|
* prepare for new style chunkingGravatar Joey Hess2014-07-24
| | | | | | | | | | | | Moved old legacy chunking code, and cleaned up the directory and webdav remotes use of it, so when no chunking is configured, that code is not used. The config for new style chunking will be chunk=1M instead of chunksize=1M. There should be no behavior changes from this commit. This commit was sponsored by Andreas Laas.
* Set gcrypt-publish-participants when setting up a gcrypt repository, to ↵Gravatar Joey Hess2014-07-15
| | | | | | | | | | | | | avoid unncessary passphrase prompts. This is a security/usability tradeoff. To avoid exposing the gpg key ids who can decrypt the repository, users can unset gcrypt-publish-participants. The gcrypt-publish-participants option is available in my fork of git-remote-gcrypt. This commit was sponsored by Christopher Kernahan.
* optimise handling of unavailable reposGravatar Joey Hess2014-07-15
| | | | | The exception handling resulted in git config --list being run twice for unavailable repos. This dials it back down to running it only once.
* catch exception when repo is really not availableGravatar Joey Hess2014-07-15
|
* sync: Fix git sync with local git remotes even when they don't have an ↵Gravatar Joey Hess2014-07-15
| | | | | | | | | | | | | | | | | annex.uuid set. Catch an exception when ensureInitialized is run in a non-initted repository. In this case, just read the git config, so that the Git.Repo object is not LocalUnknown, which is what is used to represent remotes on eg, drives that are not connected. The assistant already got this right, and like with the assistant, this causes an implicit git-annex init of the local remote on the second sync, once the git-annex branch has been pushed to it. See this comment for more analysis: http://git-annex.branchable.com/todo/Recovering_from_a_bad_sync/#comment-64e469a2c1969829ee149cbb41b1c138 This commit was sponsored by jscit.
* S3: Deal with AWS ACL configurations that do not allow creating or checking ↵Gravatar Joey Hess2014-07-11
| | | | the location of a bucket, but only reading and writing content to it.
* refactor lockingGravatar Joey Hess2014-07-10
|
* export CreateProcess fields from Utility.ProcessGravatar Joey Hess2014-06-10
| | | | update code to avoid cwd and env redefinition warnings
* fix build with old versions of bytestringGravatar Joey Hess2014-06-06
|
* fix dodgy use of Char8Gravatar Joey Hess2014-05-27
| | | | | | | | | I don't know if this was a bug, but I don't know if it was not a bug either. See also, http://git-annex.branchable.com/bugs/Truncated_file_transferred_via_S3/ where the file is not truncated, but mangled..
* initremote/enableremote: Basic support for using with regular git remotesGravatar Joey Hess2014-05-22
| | | | | initremote stores the location of an already existing git remote, and enableremote setups up a remote using its stored location.
* factor out getRemoteGitConfigGravatar Joey Hess2014-05-16
|
* execute remote.<name>.annex-shell on remote, if setGravatar Fraser Tweedale2014-05-16
| | | | | | | | It is useful to be able to specify an alternative git-annex-shell program to execute on the remote, e.g., to run a version not on the PATH. Use remote.<name>.annex-shell if specified, instead of the default "git-annex-shell" i.e., first so-named executable on the PATH.
* show a much longer message when annex-ignore is automatically set, to help ↵Gravatar Joey Hess2014-05-16
| | | | the user fix their problem
* remove odd character that snuck in somehow and broke buildGravatar Joey Hess2014-05-15
|
* ddar special remoteGravatar Robie Basak2014-05-15
|
* Bring back rsync -p, but only when git-annex is running on a non-crippled ↵Gravatar Joey Hess2014-04-17
| | | | file system. This is a better approach to fix #700282 while not unncessarily losing file permissions on non-crippled systems.
* factored out Utility.SimpleProtocol from the external special remote ↵Gravatar Joey Hess2014-04-05
| | | | implementation
* Fix glacier repo creation bugGravatar Joey Hess2014-03-27
| | | | | | | | | Version 5.20140227 broke creation of glacier repositories, not including the datacenter and vault in their configuration. This bug is fixed, but glacier repositories set up with the broken version of git-annex need to have the datacenter and vault set in order to be usable. This can be done using git annex enableremote to add the missing settings. For details, see http://git-annex.branchable.com/bugs/problems_with_glacier/
* Fix thaoe remote to work with latest tahoe (v. 1.10.0)Gravatar Alberto Berti2014-03-26
|
* add desktop notificationsGravatar Joey Hess2014-03-22
| | | | | | | Motivation: Hook scripts for nautilus or other file managers need to provide the user with feedback that a file is being downloaded. This commit was sponsored by THM Schoemaker.
* rsync special remote: Fix slashes when used on Windows.Gravatar Joey Hess2014-03-18
|
* clean up cleanup action enumerationGravatar Joey Hess2014-03-13
|
* Fix zombie leak and general inneficiency when copying files to a local git repo.Gravatar Joey Hess2014-03-06
| | | | | | Benchmarking this with 1000 small files being copied, the time reduced from 15.98s to 14.64s -- an 8% improvement in the non-data-transfer overhead of git-annex copy.
* webdav: When built with a new enough haskell DAV (0.6), disable the http ↵Gravatar Joey Hess2014-03-05
| | | | response timeout, which was only 5 seconds.
* glacier: Pass --region to glacier checkpresent.Gravatar Joey Hess2014-03-04
| | | | | I suppose this is not necessary when it has a local cache, so I didn't notice it was missing.