summaryrefslogtreecommitdiff
path: root/Assistant/Threads/Committer.hs
Commit message (Collapse)AuthorAge
* support old versions of git that do not have --allow-empty-messageGravatar Joey Hess2012-09-19
|
* add missing --no-verify to prevent the pre-commit hook's git annex fixGravatar Joey Hess2012-09-19
|
* avoid making empty commitsGravatar Joey Hess2012-09-18
| | | | | | | | | | | 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.
* run current branch merge in annex monadGravatar Joey Hess2012-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* hlintGravatar Joey Hess2012-09-13
|
* display errors when any named thread crashesGravatar Joey Hess2012-09-06
|
* added an alert after a file transferGravatar Joey Hess2012-08-06
|
* add alert when committingGravatar Joey Hess2012-08-02
|
* avoid bogus alert errorsGravatar Joey Hess2012-08-02
|
* awesome alert combiningGravatar Joey Hess2012-08-02
| | | | | | | | | Now an alert tracks files that have recently been added. As a large file is added, it will have its own alert, that then combines with the tracker when dones. Also used for combining sanity checker alerts, as it could possibly want to display a lot.
* debuggeryGravatar Joey Hess2012-07-29
|
* probably fixes ↵Gravatar Joey Hess2012-07-29
| | | | http://git-annex.branchable.com/bugs/lsof__47__committer_thread_loops_occassionally/
* better transfer queue managementGravatar Joey Hess2012-07-25
| | | | | | | Allow transfers to be added with blocking until the queue is sufficiently small. Better control over which end of the queue to add a transfer to.
* debugging improvementsGravatar Joey Hess2012-07-20
| | | | | | add timestamps to debug messages Add lots of debug output in the assistant's threads.
* queue Uploads of newly added files to remotesGravatar Joey Hess2012-07-05
| | | | | | | Added knownRemotes to DaemonStatus. This list is not entirely trivial to calculate, and having it here should make it easier to add/remove remotes on the fly later on. It did require plumbing the daemonstatus through to some more threads.
* reorg threadsGravatar Joey Hess2012-06-25