aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * add news item for git-annex 3.20120605Gravatar Joey Hess2012-06-05
| |
| * releasing version 3.201206053.20120605Gravatar Joey Hess2012-06-05
| |
| * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus2012-06-05
| |
| * Preserve parent environment when running hooks of the hook special remote.Gravatar Joey Hess2012-06-04
| |
| * updateGravatar Joey Hess2012-06-04
| |
* | run event handlers all in the same Annex monadGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Uses a MVar again, as there seems no other way to thread the state through inotify events. This is a rather unsatisfactory result. I had wanted to run them in the same monad so that the git queue could be used to coleasce git commands and speed things up. But, that led to fragility: If several files are added, and one is removed before queue flush, git add will fail to add any of them. So, the queue is still explicitly flushed after each add for now. TODO: Investigate using git add --ignore-errors. This would need to be done in Command.Add. And, git add still exits nonzero with it, so would need to avoid crashing on queue flush.
* | avoid explicit queue flushGravatar Joey Hess2012-06-04
| | | | | | | | | | The queue is still flushed on add, because each add event is handled by a separate Annex monad. That needs to be fixed to speed up add a lot.
* | flush the git queue when a new type of action is being added to itGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | This allows the queue to be used in a single process for multiple possibly conflicting commands, like add and rm, without running them out of order. This assumes that running the same git subcommand with different parameters cannot itself conflict.
* | ignore-unmatch when removing a staged fileGravatar Joey Hess2012-06-04
| | | | | | | | | | When a file is added, and then deleted before the add action runs, the delete event was unhappy that the file never did get staged.
* | refactorGravatar Joey Hess2012-06-04
| |
| * headerGravatar Joey Hess2012-06-04
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-06-04
| |\
| * | updateGravatar Joey Hess2012-06-04
| | |
* | | notice deleted files on startupGravatar Joey Hess2012-06-04
| | |
* | | deletionGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a new file is annexed, a deletion event occurs when it's moved away to be replaced by a symlink. Most of the time, there is no problimatic race, because the same thread runs the add event as the deletion event. So, once the symlink is in place, the deletion code won't run at all, due to existing checks that a deleted file is really gone. But there is a race at startup, as then the inotify thread is running at the same time as the main thread, which does the initial tree walking and annexing. It would be possible for the deletion inotify to run in a perfect race with the addition, and remove the newly added symlink from the git cache. To solve this race, added event serialization via a MVar. We putMVar before running each event, which blocks if an event is already running. And when an event finishes (or crashes!), we takeMVar to free the lock. Also, make rm -rf not spew warnings by passing --ignore-unmatch when deleting directories.
* | | suppress "recording state in git" message during addGravatar Joey Hess2012-06-04
| | |
* | | refactorGravatar Joey Hess2012-06-04
| | |
* | | Merge branch 'master' into watchGravatar Joey Hess2012-06-04
|\| |
| | * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawlu7K3h7Ry1uDAU_ERYGuqt0LoGNJqGuRo2012-06-04
| |/
| * typoGravatar Joey Hess2012-06-04
| |
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-06-04
| |\
| | * Added a commentGravatar http://joeyh.name/2012-06-04
| | |
| | * Added a commentGravatar http://joeyh.name/2012-06-04
| | |
| | * Added a comment: This is not an easy question to answer...Gravatar http://joeyh.name/2012-06-04
| | |
| * | addGravatar Joey Hess2012-06-04
| | |
| | * Added a commentGravatar http://joeyh.name/2012-06-04
| | |
| | * Added a commentGravatar http://joeyh.name/2012-06-04
| |/
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-06-04
| |\
| * | moveGravatar Joey Hess2012-06-04
| | |
| | * Added a commentGravatar http://ciffer.net/~svend/2012-06-04
| | |
| | * removedGravatar http://ciffer.net/~svend/2012-06-04
| |/
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-06-04
| |\
| * | updateGravatar Joey Hess2012-06-04
| | |
| | * Added a commentGravatar http://ciffer.net/~svend/2012-06-04
| |/
| * updateGravatar Joey Hess2012-06-04
| |
| * update; worked on watch branch todayGravatar Joey Hess2012-06-04
| |
* | add handling of symlink addition eventsGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | And just like that, annexed files can be moved and copies around within the tree, and are automatically fixed to point to the content, and staged in git. Huzzah! Delete still remains TODO, with its troublesome race during add..
* | workaround other part of moved directory problemGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | | | | | | | This fixes the scenario where: * directory foo is moved away (and still watched) * a new directory foo is made * file (or directory) foo/bar is created * the old directory's file (or directory) "bar" is deleted We don't want a deletion event for foo/bar in this case.
* | add explict test that a closed file even is on a regular fileGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two reasons for this test. First, there could be a fifo or other non-regular file that was closed. Second, this test avoids ugliness when a subdirectory is moved out of the top of the watch directory to elsewhere, and a file added to it. Since the subdirectory has moved, the file won't be present under the old location, and nothing will be done. I cannot find a way to stop watching such directories, at least not without a lot of pain. The inotify interface in Haskell doesn't make it easy to stop watching a given subdirectory when it's moved out; it would require keeping a map of all watch handles that is shared between threads. This workaround avoids the problem in most cases; the only remaining case being deletion of a file from a moved subdirectory.
* | add hinotify dependenciesGravatar Joey Hess2012-06-04
| |
* | handle directory deletionGravatar Joey Hess2012-06-04
| | | | | | | | | | When a directory is deleted, or moved away, git rm -r it to stage the deletion.
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawlYu7QmD7wrbHWkoxuriaA9XcijM-g5vrQ2012-06-04
| |
* | add events for symlink creation and directory removalGravatar Joey Hess2012-06-04
| | | | | | | | | | | | | | | | | | | | Improved the inotify code, so it will also notice directory removal and symlink creation. In the watch code, optimised away a stat of a file that's being added, that's done by Command.Add.start. This is the reason symlink creation is handled separately from file creation, since during initial tree walk at startup, a stat was already done, and can be reused.
* | Merge branch 'master' into watchGravatar Joey Hess2012-06-04
|\ \
| | * nothing too crazy, but it's the usual distro specific problems or ↵Gravatar https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus2012-06-04
| | | | | | | | | | | | architecture specific problems
| | * Added a forum post asking how to make locally cached files stay up to date ↵Gravatar https://www.google.com/accounts/o8/id?id=AItOawlu7K3h7Ry1uDAU_ERYGuqt0LoGNJqGuRo2012-06-04
| |/ | | | | | | across both rename and modify.
| * simplify OSX installation instructionsGravatar Joey Hess2012-06-03
| | | | | | | | | | The new Haskell Platform was released today, with the new ghc git-annex's master branch needs, so cabal should be usable again on OSX.
| * Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2012-06-03
| |\ | | | | | | | | | | | | Conflicts: doc/tips/using_Amazon_S3.mdwn
| | * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus2012-06-02
| | |
| | * Added a commentGravatar http://joeyh.name/2012-06-01
| | |