This commit is contained in:
Joey Hess 2012-06-04 15:23:56 -04:00
parent 9791d1dfe7
commit 9b40cd7461

View file

@ -1,22 +1,33 @@
Finish "git annex watch" command, which runs, in the background, watching via Finish "git annex watch" command, which runs, in the background, watching via
inotify for changes, and automatically annexing new files, etc. inotify for changes, and automatically annexing new files, etc.
There is a `watch` branch in git that adds such a command, although currently There is a `watch` branch in git that adds such a command. To make this
it only handles adding new files, and nothing else. To make this really really useful, it needs to:
useful, it needs to:
- notice deleted files and stage the deletion - on startup, add any files that have appeared since last run **done**
(tricky; there's a race with add..) - on startup, fix the symlinks for any renamed links **done**
- on startup, stage any files that have been deleted since last run
(seems to require a `git commit -a` on startup, or at least a
`git add --update`, which will notice deleted files)
- notice new files, and git annex add **done**
- notice renamed files, auto-fix the symlink, and stage the new file location - notice renamed files, auto-fix the symlink, and stage the new file location
**done** **done**
- handle cases where directories are moved outside the repo, and stop - handle cases where directories are moved outside the repo, and stop
watching them **done** watching them **done**
- when a whole directory is deleted, stage removal of its - when a whole directory is deleted or moved, stage removal of its
contents in the index **done** contents from the index **done**
- notice deleted files and stage the deletion
(tricky; there's a race with add since it replaces the file with a symlink..)
- periodically auto-commit staged changes (avoid autocommitting when - periodically auto-commit staged changes (avoid autocommitting when
lots of changes are coming in) lots of changes are coming in)
- tunable delays before adding new files, etc - tunable delays before adding new files, etc
- honor .gitignore, not adding files it excludes - don't annex `.gitignore` and `.gitattributes` files, but do auto-stage
changes to them
- configurable option to only annex files meeting certian size or
filename criteria
- honor .gitignore, not adding files it excludes (difficult, probably
needs my own .gitignore parser to avoid excessive running of git commands
to check for ignored files)
Also to do: Also to do: