summaryrefslogtreecommitdiff
path: root/Logs/Transfer.hs
Commit message (Collapse)AuthorAge
* final scary locking refactoring (for now)Gravatar Joey Hess2014-08-20
| | | | | | | | | | Note that while before checkTransfer this called getLock with WriteLock, getLockStatus's use of ReadLock will also notice any exclusive locks. Since transfer info files are only locked exclusively, never shared, there is no behavior change. Also, fixes checkLocked to actually return Just False when the file exists, but is not locked.
* more lock file refactoringGravatar Joey Hess2014-08-20
|
* unify exception handling into Utility.ExceptionGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | | | | | Removed old extensible-exceptions, only needed for very old ghc. Made webdav use Utility.Exception, to work after some changes in DAV's exception handling. Removed Annex.Exception. Mostly this was trivial, but note that tryAnnex is replaced with tryNonAsync and catchAnnex replaced with catchNonAsync. In theory that could be a behavior change, since the former caught all exceptions, and the latter don't catch async exceptions. However, in practice, nothing in the Annex monad uses async exceptions. Grepping for throwTo and killThread only find stuff in the assistant, which does not seem related. Command.Add.undo is changed to accept a SomeException, and things that use it for rollback now catch non-async exceptions, rather than only IOExceptions.
* 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.
* Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp for ↵Gravatar Joey Hess2014-02-26
| | | | | | | | | | | | | | | | | | | | only partially transferred objects. This allows eg, putting .git/annex/tmp on a ram disk, if the disk IO of temp object files is too annoying (and if you don't want to keep partially transferred objects across reboots). .git/annex/misctmp must be on the same filesystem as the git work tree, since files are moved to there in a way that will not work cross-device, as well as symlinked into there. I first wanted to put the tmp objects in .git/annex/objects/tmp, but that would pose transition problems on upgrade when partially transferred objects existed. git annex info does not currently show the size of .git/annex/misctemp, since it should stay small. It would also be ok to make something clean it out, periodically.
* fix windows build (and make --stop work on windows, incidentially)Gravatar Joey Hess2014-02-11
| | | | The Utility.PID will clean up other code soon.
* avoid using openFile when withFile can be usedGravatar Joey Hess2014-02-03
| | | | | | Potentially fixes some FD leak if an action on an opened file handle fails for some reason. There have been some hard to reproduce reports of git-annex leaking FDs, and this may solve them.
* fix warningGravatar Joey Hess2014-01-28
|
* use locking on WindowsGravatar Joey Hess2014-01-28
| | | | This is all the easy cases, where there was already a separate lock file.
* syntaxGravatar Joey Hess2013-12-11
|
* pull in Win32-extras, to be able to get current process id in WindowsGravatar Joey Hess2013-12-11
| | | | | | | | | Fixed up a number of things that had worked around there not being a way to get that. Most notably, transfer info files on windows now include the process id, since no locking is currently done. This means the file format varies between windows and unix.
* different PID types for Unix and WindowsGravatar Joey Hess2013-12-10
| | | | | | | | Windows has a larger (unsigned) PID space, so cannot use the unix CInt there. Note that TransferInfo does not yet ever get the TransferPid populated, as there is missing locking.
* hlintGravatar Joey Hess2013-09-25
|
* assistant: Clear the list of failed transfers when doing a full transfer ↵Gravatar Joey Hess2013-09-25
| | | | | | | | | | | | | | | | | scan. This prevents repeated retries to download files that are not available, or are not referenced by the current git tree. This is motivated by a user report that the assistant was repeatedly retrying transfers of files that had been deleted (in direct mode, so removing the only copy). Note that the glacier code retries failed transfers after a while to retry downloads that have aged long enough to be available. This is ok; if we're doing a full transfer scan we'll retry on every file that is still in the git tree. Also note that this makes the assistant less likely to get every file referenced by old revs of the git tree. Not something the assistant tries to ensure anyway, so I feel this is acceptable.
* avoid more build warnings on WindowsGravatar Joey Hess2013-08-04
|
* get rid of __WINDOWS__, use mingw32_HOST_OSGravatar Joey Hess2013-08-02
| | | | | The latter is harder for me to remember, but avoids build failures in code used by the configure program.
* display "transfer already in progress" as a noteGravatar Joey Hess2013-07-17
|
* When a transfer is already being run by another process, proceed on to the ↵Gravatar Joey Hess2013-07-17
| | | | next file, rather than dying.
* moved AssociatedFile definitionGravatar Joey Hess2013-07-04
|
* improve robustness of fromDirect and replaceFileGravatar Joey Hess2013-05-25
| | | | | | | | | Made fromDirect check that a file in the tree has good content (and is not a broken symlink either) before copying it to another file that has the same key. Made replaceFile clean up the temp file if the action that creates it, or the file replacement action fails.
* fix permission damage (thanks, Windows)Gravatar Joey Hess2013-05-11
|
* clean up from windows portingGravatar Joey Hess2013-05-11
|
* git-annex now builds on Windows (doesn't work)Gravatar Joey Hess2013-05-11
|
* connect existing meters to the transfer log for downloadsGravatar Joey Hess2013-04-11
| | | | | | | | | | | | | | Most remotes have meters in their implementations of retrieveKeyFile already. Simply hooking these up to the transfer log makes that information available. Easy peasy. This is particularly valuable information for encrypted remotes, which otherwise bypass the assistant's polling of temp files, and so don't have good progress bars yet. Still some work to do here (see progressbars.mdwn changes), but this is entirely an improvement from the lack of progress bars for encrypted downloads.
* hlintGravatar Joey Hess2013-04-03
|
* show bytesCompleteGravatar Joey Hess2013-04-02
|
* webapp: Progess bar fixes for many types of special remotes.Gravatar Joey Hess2013-03-28
| | | | | | | | | | | | | There was confusion in different parts of the progress bar code about whether an update contained the total number of bytes transferred, or the number of bytes transferred since the last update. One way this bug showed up was progress bars that seemed to stick at zero for a long time. In order to fix it comprehensively, I add a new BytesProcessed data type, that is explicitly a total quantity of bytes, not a delta. Note that this doesn't necessarily fix every problem with progress bars. Particularly, buffering can now cause progress bars to seem to run ahead of transfers, reaching 100% when data is still being uploaded.
* get, copy, move: Display an error message when an identical transfer is ↵Gravatar Joey Hess2013-03-19
| | | | already in progress, rather than failing with no indication why.
* optimisation for transfers to drives that are not plugged inGravatar Joey Hess2013-03-18
| | | | | | Rather than forking a git-annex transferkey only to have it fail, just immediately record the failed transfer (so when the drive is plugged in, the scan will retry it).
* add additional debug info about reasons for transfersGravatar Joey Hess2013-03-01
|
* improve importsGravatar Joey Hess2013-02-27
|
* move Arbitrary instances out of Test and into modules that define the typesGravatar Joey Hess2013-02-27
| | | | This is possible now that we build-depend on QuickCheck.
* more quickcheck funGravatar Joey Hess2012-12-19
| | | | and the code gets better..
* quickcheck test for transfer info read/write codeGravatar Joey Hess2012-12-19
| | | | Fixed a bug the quickcheck turned up.
* Bugfix: Fixed bug parsing transfer info filesGravatar Joey Hess2012-12-19
| | | | | | | | | | | | | | | The newline after the filename was included in it. This was generally benign -- mostly these filenames are just displayed, and the newline didn't matter. But in the assistant, it caused unexpected dropping of preferred content. A characteristic of this bug is that the drop was displayed like this: drop some_file ok
* where indentingGravatar Joey Hess2012-11-11
|
* bugfix: Don't fail transferring content from read-only repos. Closes: #691341Gravatar Joey Hess2012-10-24
| | | | | This used to work, but got broken when the transfer info files were added, as it failed writing them on the readonly filesystem.
* !! removalGravatar Joey Hess2012-10-21
|
* fixes for transfer resumeGravatar Joey Hess2012-09-24
| | | | | | | | | Fix resuming of downloads, which do not have a transfer info file to read. When checking upload progress, use the MVar, rather than re-reading the info file. Catch exceptions in the transfer action. Required a tryAnnex.
* make the assistant retry failed transfersGravatar Joey Hess2012-09-23
| | | | | | | When a transfer fails, the progress info can be used to intelligently retry it. If the transfer managed to make some progress, but did not fully complete, then there's a good chance that a retry will finish it (or at least make more progress).
* git-annex-shell transferinfo commandGravatar Joey Hess2012-09-21
| | | | | TODO: Use this when running sendkey, to feed back transfer info from the client side rsync.
* avoid updating transfer info file until another 1% of the total has been ↵Gravatar Joey Hess2012-09-21
| | | | transferred
* unify typesGravatar Joey Hess2012-09-21
|
* fix reading of transfer info files with a bytesComplete valueGravatar Joey Hess2012-09-20
|
* add a progress callback to storeKey, and threaded it all the way throughGravatar Joey Hess2012-09-19
| | | | | | | | Transfer info files are updated when the callback is called, updating the number of bytes transferred. Left unused p variables at every place the callback should be used. Which is rather a lot..
* make other repositories list list all autostarted reposGravatar Joey Hess2012-09-18
| | | | And add a form to add another, unrelated repository
* cleanupGravatar Joey Hess2012-09-17
|
* flip catchDefaultIOGravatar Joey Hess2012-09-17
|
* Avoid crashing on encoding errors in filenames when writing transfer info ↵Gravatar Joey Hess2012-09-16
| | | | files and reading from checksum commands.
* stupid typoGravatar Joey Hess2012-08-29
|