summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-06-04 15:23:56 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-06-04 15:23:56 -0400
commit9b40cd7461cc7b384f21a428a6b99f33301d67dd (patch)
tree2bb47976a041ac109bc1c09778740045ed497e94
parent9791d1dfe7083d1564d64a35cb2a37350dcc184f (diff)
update
-rw-r--r--doc/design/assistant/inotify.mdwn27
1 files changed, 19 insertions, 8 deletions
diff --git a/doc/design/assistant/inotify.mdwn b/doc/design/assistant/inotify.mdwn
index fd8d56e05..166e5b7cd 100644
--- a/doc/design/assistant/inotify.mdwn
+++ b/doc/design/assistant/inotify.mdwn
@@ -1,22 +1,33 @@
Finish "git annex watch" command, which runs, in the background, watching via
inotify for changes, and automatically annexing new files, etc.
-There is a `watch` branch in git that adds such a command, although currently
-it only handles adding new files, and nothing else. To make this really
-useful, it needs to:
+There is a `watch` branch in git that adds such a command. To make this
+really useful, it needs to:
-- notice deleted files and stage the deletion
- (tricky; there's a race with add..)
+- on startup, add any files that have appeared since last run **done**
+- 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
**done**
- handle cases where directories are moved outside the repo, and stop
watching them **done**
-- when a whole directory is deleted, stage removal of its
- contents in the index **done**
+- when a whole directory is deleted or moved, stage removal of its
+ 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
lots of changes are coming in)
- 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: