Commit graph

5847 commits

Author SHA1 Message Date
https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0
bddeaa6416 Added a comment 2012-09-19 23:32:35 +00:00
Joey Hess
0cb4382880 typo 2012-09-19 17:10:22 -04:00
Joey Hess
77938a7d62 better parameter name 2012-09-19 17:10:13 -04:00
Joey Hess
3d98326763 Merge branch 'master' of ssh://git-annex.branchable.com 2012-09-19 17:06:49 -04:00
Joey Hess
3d62a09e53 blog for the day 2012-09-19 17:05:42 -04:00
Joey Hess
f542701620 recvkey is not an upload, so ignore the progress callback 2012-09-19 17:02:33 -04:00
Joey Hess
e1037adebc rsync progress interception
Current implementation parses rsync's output a character a time, which
is hardly efficient. It could be sped up a lot by using hGetBufSome,
but that would require going really lowlevel, down to raw C style buffers
(good example of that here: http://users.aber.ac.uk/afc/stricthaskell.html)
But rsync doesn't output very much, so currently it seems ok.
2012-09-19 16:55:08 -04:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
fbfc42ed03 Added a comment 2012-09-19 20:17:00 +00:00
Joey Hess
aff09a1f33 add a progress callback to storeKey, and threaded it all the way through
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..
2012-09-19 16:08:37 -04:00
Joey Hess
3c81d70c1b parser for rsync progress output 2012-09-19 15:23:59 -04:00
Joey Hess
0608a2e748 reorg 2012-09-19 14:28:57 -04:00
Joey Hess
45a26175d6 renamed RsyncFile -> Rsync 2012-09-19 14:28:32 -04:00
http://joeyh.name/
ab1a0c0656 Added a comment 2012-09-19 17:33:20 +00:00
http://joeyh.name/
08d61295a8 Added a comment 2012-09-19 17:32:13 +00:00
Joey Hess
355ef8f3ea add annex.delayadd configuration 2012-09-19 13:30:25 -04:00
http://joeyh.name/
da8c8c3ccd Added a comment 2012-09-19 17:02:47 +00:00
Joey Hess
d50d89eb6f support old versions of git that do not have --allow-empty-message 2012-09-19 12:58:53 -04:00
Joey Hess
c4e8591351 add missing --no-verify to prevent the pre-commit hook's git annex fix 2012-09-19 12:48:32 -04:00
Joey Hess
08fa128c2a Merge branch 'master' of ssh://git-annex.branchable.com 2012-09-19 12:01:26 -04:00
Joey Hess
e79890664d idea 2012-09-19 12:00:06 -04:00
https://www.google.com/accounts/o8/id?id=AItOawn-KDr_Z4CMkjS0v_TxQ08SzAB5ecHG3K0
e79cd19c4c 2012-09-19 14:36:31 +00:00
https://www.google.com/accounts/o8/id?id=AItOawn-KDr_Z4CMkjS0v_TxQ08SzAB5ecHG3K0
123bd31a6c 2012-09-19 14:34:47 +00:00
https://www.google.com/accounts/o8/id?id=AItOawn-KDr_Z4CMkjS0v_TxQ08SzAB5ecHG3K0
481adaaffe Added a comment: Modifying files in a folder watched by assistant 2012-09-19 14:18:55 +00:00
79.97.135.214
d95c4cff8a poll vote (Tahoe-LAFS) 2012-09-19 08:24:09 +00:00
98.108.200.80
efe26d2919 poll vote (Google Drive) 2012-09-19 06:46:40 +00:00
Joey Hess
6cea492cf2 fix link 2012-09-18 21:28:41 -04:00
85.165.7.40
cbcd208d15 poll vote (My phone (or MP3 player)) 2012-09-18 23:07:43 +00:00
http://www.davidhaslem.com/
b4297f0a97 Added a comment 2012-09-18 22:49:09 +00:00
Joey Hess
2da6da9a8e Merge branch 'master' of ssh://git-annex.branchable.com 2012-09-18 17:51:52 -04:00
Joey Hess
b2396535de blog for the day 2012-09-18 17:51:18 -04:00
Joey Hess
18bae020ed make other repositories list list all autostarted repos
And add a form to add another, unrelated repository
2012-09-18 17:50:07 -04:00
Joey Hess
467844d7d3 prefer ipv4 localhost when both are available
The webapp can only run on one of ipv4 and ipv6, no both. Some web browsers
may not support ipv6, so ipv4 is the safe choice.

The actual problem I ran into with it only listening to ipv6 was that
Utility.Url.exists was failing to connect to it. I doubt that haskell's
HTTP library is ipv4 only. More likely, it was only trying one address,
and tried ipv4 first.
2012-09-18 17:19:41 -04:00
Joey Hess
ba27483c6a avoid making empty commits
This doesn't avoid it sometimes attempting to commit when there are no
changes. Typically that happens when a change is pushed in from another
repo; the watcher sees the file and tries to stage it, resulting in an
empty commit. Really fixing that would probably use more CPU than
occasionally trying to make an empty commit.

However, this does save a lot of unnecessary work, as those empty commits
had to be synced out, which no longer happens.
2012-09-18 14:43:56 -04:00
Joey Hess
9f05d19108 avoid sending uploads right back to where the download came from
Just an optimisation.
2012-09-18 14:24:51 -04:00
Joey Hess
3a0cffcfed when a Download finishes, queue Uploads
This ensures file propigate takes place in situations such as: Usb drive A
is connected to B. A's master branch is already in sync with B, but it is
being used to sneakernet some files around, so B downloads those. There is no
master branch change, so C does not request these files. B needs to upload
the files it just downloaded on to C, etc.

My first try at this, I saw loops happen. B uploaded to C, which then
tried to upload back to B (because it had not received the updated
git-annex branch from B yet). B already had the file, but it still created
a transfer info file from the incoming transfer, and its watcher saw
that be removed, and tried to upload back to C.

These loops should have been fixed by my previous commit. (They never
affected ssh remotes, only local ones, it seemed.) While C might still try
to upload to B, or to some other remote that already has the file, the
extra work dies out there.
2012-09-18 14:10:33 -04:00
Joey Hess
e9238e9588 avoid starting a download for a local transfer when the remote already has the key
Turns out that recvkey already does this same check. This avoids a transfer
file being created for the download that never happened, which in turn
will avoid the assistant seeing that the download has finished, when no
transfer actually took place.
2012-09-18 13:59:03 -04:00
http://joeyh.name/
402c86c448 Added a comment 2012-09-18 16:35:37 +00:00
http://ertai.myopenid.com/
ac365b954a Added a comment: +1 2012-09-18 08:52:22 +00:00
http://www.davidhaslem.com/
e949f9c00b 2012-09-18 05:12:10 +00:00
Joey Hess
e6d4108fad Merge branch 'master' of ssh://git-annex.branchable.com 2012-09-17 22:37:23 -04:00
Joey Hess
9a2533cf02 blog for the day 2012-09-17 22:36:23 -04:00
Joey Hess
adf5195082 run current branch merge in annex monad
I was seeing some interesting crashes after the previous commit,
when making file changes slightly faster than the assistant could keep up.

error: Ref refs/heads/master is at 7074f8e0a11110c532d06746e334f2fec6af6ab4 but expected 95ea86008d72a40d97a81cfc8fb47a0da92166bd
fatal: cannot lock HEAD ref
Committer crashed: git commit [Param "--allow-empty-message",Param "-m",Param "",Param "--allow-empty",Param "--quiet"] failed
Pusher crashed: thread blocked indefinitely in an STM transaction

Clearly the the merger ended up running at the same time as the committer,
and with both modifying HEAD the committer crashed. I fixed that by
making the Merger run its merge inside the annex monad, which avoids
it running concurrently with other git operations. Also by making
the committer not crash if git fails.

What I don't understand is why the pusher then crashed with a STM deadlock.
That must be in either the DaemonStatusHandle or the FailedPushMap,
and the latter is only used by the pusher. Did the committer's crash somehow
break STM?

The BlockedIndefinitelyOnSTM exception is described as:

-- |The thread is waiting to retry an STM transaction, but there are no
-- other references to any @TVar@s involved, so it can't ever continue.

If the Committer had a reference to a TVar and crashed, I can sort of see
this leading to that exception..

The crash was quite easy to reproduce after the previous commit, but
after making the above change, I have yet to see it again. Here's hoping.
2012-09-17 22:04:43 -04:00
Joey Hess
3c22977e44 deferred downloads
Now when a download is queued and there's no known remote to get it from,
it's added to a deferred download list, which will be retried later.

The Merger thread tries to queue any deferred downloads when it receives
a push to the git-annex branch.

Note that the Merger thread now also forces an update of the git-annex
branch. The assistant was not updating this branch before, and it saw a
(mostly) correct view of state, but now that incoming pushes go to
synced/git-annex, it needs to be merged in.
2012-09-17 21:05:50 -04:00
https://www.google.com/accounts/o8/id?id=AItOawn4bbuawnh-nSo9pAh8irYAcV4MQCcfdHo
ba35a10a1e Added a comment 2012-09-18 00:11:50 +00:00
https://www.google.com/accounts/o8/id?id=AItOawn4bbuawnh-nSo9pAh8irYAcV4MQCcfdHo
1778fa3a79 Added a comment 2012-09-17 23:00:10 +00:00
93.218.139.22
714cf46171 poll vote (My phone (or MP3 player)) 2012-09-17 19:01:43 +00:00
Joey Hess
7a86dc9443 cleanup 2012-09-17 14:58:43 -04:00
Joey Hess
1e37c0c5fc note 2012-09-17 13:43:08 -04:00
Joey Hess
70cf66fded simplify 2012-09-17 13:41:13 -04:00
174.127.226.162
a4c062151d poll vote (Google Drive) 2012-09-17 17:36:16 +00:00