summaryrefslogtreecommitdiff
path: root/doc/design/assistant/inotify.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-08-02 19:31:55 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-08-02 20:37:03 -0400
commitdae67dc00302da237ac380e9a5a0d68c86f88d51 (patch)
tree3603e936bb5a1c6e69411c89fa2df904ce42ca34 /doc/design/assistant/inotify.mdwn
parentaddc505584876cca50ccdcd1c982e9a5e10ec9b1 (diff)
gitignore support for the assistant and watcher
Requires git 1.8.4 or newer. When it's installed, a background git check-ignore process is run, and used to efficiently check ignores whenever a new file is added. Thanks to Adam Spiers, for getting the necessary support into git for this. A complication is what to do about files that are gitignored but have been checked into git anyway. git commands assume the ignore has been overridden in this case, and not need any more overriding to commit a changed version. However, for the assistant to do the same, it would have to run git ls-files to check if the ignored file is in git. This is somewhat expensive. Or it could use the running git-cat-file process to query the file that way, but that requires transferring the whole file content over a pipe, so it can be quite expensive too, for files that are not git-annex symlinks. Now imagine if the user knows that a file or directory tree will be getting frequent changes, and doesn't want the assistant to sync it, so gitignores it. The assistant could overload the system with repeated ls-files checks! So, I've decided that the assistant will not automatically commit changes to files that are gitignored. This is a tradeoff. Hopefully it won't be a problem to adjust .gitignore settings to not ignore files you want the assistant to autocommit, or to manually git annex add files that are listed in .gitignore. (This could be revisited if git-annex gets access to an interface to check the content of the index w/o forking a git command. This could be libgit2, or perhaps a separate git cat-file --batch-check process, so it wouldn't need to ship over the whole file content.) This commit was sponsored by Francois Marier. Thanks!
Diffstat (limited to 'doc/design/assistant/inotify.mdwn')
-rw-r--r--doc/design/assistant/inotify.mdwn8
1 files changed, 0 insertions, 8 deletions
diff --git a/doc/design/assistant/inotify.mdwn b/doc/design/assistant/inotify.mdwn
index 11220c2ee..d1afe63c5 100644
--- a/doc/design/assistant/inotify.mdwn
+++ b/doc/design/assistant/inotify.mdwn
@@ -14,14 +14,6 @@ available!
## todo
-* Run niced and ioniced? Seems to make sense, this is a background job.
-* configurable option to only annex files meeting certian size or
- filename criteria
-* option to check files not meeting annex criteria into git directly,
- automatically
-* 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)
* There needs to be a way for a new version of git-annex, when installed,
to restart any running watch or assistant daemons. Or for the daemons
to somehow detect it's been upgraded and restart themselves. Needed