summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-04-12 17:51:11 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-04-12 17:51:16 -0400
commit49a95f151ce31f44417eee0463e9d334a581155f (patch)
treef718ce2fd0dde6fb53ed948a827dc57856d66f79
parent6464a576cd0c4063fb6cedf32a5dca224db3de6d (diff)
add a todo item
-rw-r--r--doc/todo/automatic_bookkeeping_watch_command.mdwn42
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/todo/automatic_bookkeeping_watch_command.mdwn b/doc/todo/automatic_bookkeeping_watch_command.mdwn
new file mode 100644
index 000000000..d7a3517a1
--- /dev/null
+++ b/doc/todo/automatic_bookkeeping_watch_command.mdwn
@@ -0,0 +1,42 @@
+A "git annex watch" command would help make git-annex usable by users who
+don't know how to use git, or don't want to bother typing the git commands.
+It would run, in the background, watching via inotify for changes, and
+automatically annexing new files, etc.
+
+The blue sky goal would be something automated like dropbox, except fully
+distributed. All files put into the repository would propigate out
+to all the other clones of it, as network links allow. Note that while
+dropbox allows modifying files, git-annex freezes them upon creation,
+so this would not be 100% equivilant to dropbox. --[[Joey]]
+
+----
+
+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:
+
+- notice deleted files and stage the deletion
+ (tricky; there's a race with add..)
+- notice renamed files, auto-fix the symlink, and stage the new file location
+- periodically auto-commit staged changes
+- honor .gitignore, not adding files it excludes
+
+Also nice to have would be:
+
+- Somehow sync remotes, possibly using a push sync like dvcs-autosync
+ does, so they are immediately updated.
+- Somehow get content that is unavilable. This is problimatic with inotify,
+ since we only get an event once the user has tried (and failed) to read
+ from the file. Perhaps instead, automatically copy content that is added
+ out to remotes, with the goal of all repos eventually getting a copy,
+ if df allows.
+- Drop files that have not been used lately, or meet some other criteria
+ (as long as there's a copy elsewhere).
+- Perhaps automatically dropunused files that have been deleted,
+ although I cannot see a way to do that, since by the time the inotify
+ deletion event arrives, the file is deleted, and we cannot see what
+ its symlink pointed to! Alternatievely, perhaps automatically
+ do an expensive unused/dropunused cleanup process.
+- Support OSes other than Linux; it only uses inotify currently.
+
+