| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The --copies flag now takes an argument of the form:
trustlevel:number or number
If a trust level is specified the command is limited to files
with at least 'number' copies of this 'trustlevel'.
|
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| | |
TODO: Use this when running sendkey, to feed back transfer info from the
client side rsync.
|
| |
| |
| |
| | |
transferred
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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..
|
| |
| |
| |
| | |
And add a form to add another, unrelated repository
|
| | |
|
| | |
|
| |
| |
| |
| | |
files and reading from checksum commands.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Change alterTransferInfo to not merge in old values, including
transferPaused.
|
| |
| |
| |
| | |
bytesComplete value
|
|/
|
|
| |
Doesn't fix the bug I thought it'd fix, but is clearly correct.
|
|
|
|
|
| |
Since it turned out to make sense to always scan all remotes on startup,
there's no need to persist the info about which have been scanned.
|
|
|
|
| |
of a remote
|
| |
|
|
|
|
|
|
| |
A paused transfer's thread keeps running, keeping the slot in use.
This is intentional; pausing a transfer should not let other
queued transfers to run in its place.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit includes a paydown on technical debt incurred two years ago,
when I didn't know that it was bad to make custom Read and Show instances
for types. As the routes need Read and Show for Transfer, which includes a
Key, and deriving my own Read instance of key was not practical,
I had to finally clean that up.
So the compact Key read and show functions are now file2key and key2file,
and Read and Show are now derived instances.
Changed all code that used the old instances, compiler checked.
(There were a few places, particularly in Command.Unused, and the test
suite where the Show instance continue to be used for legitimate
comparisons; ie show key_x == show key_y (though really in a bloom filter))
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Avoid crashing when "git annex get" fails to download from one location,
and falls back to downloading from a second location.
The problem is that git annex get calls download recursively from within
itself if the first download attempt fails. So the first time through, it
writes a transfer info file, which is then overwritten on the second,
recursive call. Then on cleanup, it tries to delete the file twice, which
of course doesn't work.
Fixed both by not crashing if the transfer file is removed, and by
changing Get to not run download recursively like that. It's the only
thing that did so, and it just seems like a bad idea.
|
| |
| |
| |
| | |
yowza!!!
|
| |
| |
| |
| | |
New log file format.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This should fix OSX/BSD issues with not noticing transfer information
files with kqueue. Now that threads are used, the thread can manage the
transfer slot allocation and deallocation by itself; much cleaner.
|
| |
| |
| |
| |
| | |
Also converted its timestand to posix seconds, like is used in the other
log files.
|
| |
| |
| |
| |
| | |
This seems to happen with kqueue, not inotify. The newly added lck file
triggers an add event and was then parsed as a transfer file.
|
| | |
|
| |
| |
| |
| |
| | |
foo.lck could be a lock file for a transfer of foo, or a transfer of a key
that happened to end in ".lck". Fix this by using "lck.foo" instead.
|
| |
| |
| |
| |
| |
| |
| | |
Since the lock file has to be kept open, this prevented the TransferWatcher
from noticing when it appeared, since inotify (and more importantly kqueue)
events happen when a new file is closed. Writing a separate info file fixes
that problem.
|
| |
| |
| |
| |
| |
| | |
There's still a bug; if the child updates its transfer info file,
then the data from it will superscede the TransferInfo, losing the
info that we should wait on this child.
|
| | |
|
| |
| |
| |
| | |
finally!
|
| |
| |
| |
| | |
This changes the file format.
|
|/
|
|
| |
This changes the file format.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Not yet tested and places git-annex-shell is run need to be modified to
pass the new field settings.
Note that rsyncServerSend was changed to fork, rather than directly exec
rsync, because it needs to keep the transfer lock held, and clean up the
transfer log when done.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to record a semi-useful filename associated with the key,
this required plumbing the filename all the way through to the remotes'
storeKey and retrieveKeyFile.
Note that there is potential for deadlock here, narrowly avoided.
Suppose the repos are A and B. A sends file foo to B, and at the same
time, B gets file foo from A. So, A locks its upload transfer info file,
and then locks B's download transfer info file. At the same time,
B is taking the two locks in the opposite order. This is only not a
deadlock because the lock code does not wait, and aborts. So one of A or
B's transfers will be aborted and the other transfer will continue.
Whew!
|
|
|
|
|
|
| |
fdToHandle seems to close the fd
avoid excess trailing newline
|
| |
|
| |
|
| |
|
| |
|