git-annex/doc/design/assistant
Joey Hess b191d5c595 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!
2013-08-02 20:37:03 -04:00
..
android
blog blog for the day 2013-08-01 17:33:04 -04:00
cloud
deltas
desymlink
inotify
leftovers
OSX
partial_content
polls poll vote (Tahoe-LAFS) 2013-07-22 15:40:21 +00:00
progressbars
screenshot
syncing
thanks
transfer_control
webapp
windows
xmpp
xmpp_security Added a comment: Why not use OTR? 2013-07-23 23:53:12 +00:00
android.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00
blog.mdwn
chunks.mdwn update 2013-07-26 01:20:09 -04:00
cloud.mdwn
comment_1_a48fcfbf97f0a373ea375cd8f07f0fc8._comment
comment_2_6d3552414fdcc2ed3244567e6c67989d._comment
comment_3_05223be50c889b2ed6bc4abf74116450._comment
comment_4_fbbd93b55803ae21e6ba4b6568c2fafd._comment
comment_5_f4e9af3fed6c27e8ff39badb9794064d._comment
comment_6_c7ad07cade1f44f9a8b61f92225bb9c5._comment
comment_7_609d38e993267195a80fecd84c93d1e2._comment
comment_8_22b818e1a2a825efb78139271a14f944._comment
comment_9_d052e2142da8b4838fb1edf791ea23ae._comment
comment_10_f2233fad55c20686cf299bf6788f1f23._comment
comment_11_a38f0f21c2346e65b786d791b6829f9b._comment
comment_12_5e991177d6577384f39a36ae02f5f574._comment
comment_13_f8625c6f43b58847840df338a73b7972._comment
comment_14_c37ef5931b0f5c1f808083e0d636a208._comment
comment_15_68c98a27083567f20c2e6bc2a760991b._comment
comment_16_8e6788c817c60371d2a2f158e1a65f87._comment
comment_17_97bdfacac5ac492281c9454ee4c0228e._comment
comment_18_53137b2df4913496c0afb2d895aa4ee2._comment Added a comment: for OSX, package managers (homebrew and macports) are really second-class 2013-07-24 07:24:49 +00:00
comment_19_ff1b0ba57e22ed757ec3fc5400b5e43e._comment Added a comment: windows port 2013-07-25 07:50:19 +00:00
comment_20_099da245e3276fa84f5e14312d186621._comment Added a comment 2013-07-25 18:22:51 +00:00
configurators.mdwn
deltas.mdwn
desymlink.mdwn
disaster_recovery.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00
encrypted_git_remotes.mdwn
gpgkeys.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00
inotify.mdwn gitignore support for the assistant and watcher 2013-08-02 20:37:03 -04:00
leftovers.mdwn
more_cloud_providers.mdwn
OSX.mdwn
pairing.mdwn
partial_content.mdwn fix typo: Once way -> One way 2013-07-25 10:51:26 +00:00
polls.mdwn
progressbars.mdwn
rate_limiting.mdwn
sshpassword.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00
syncing.mdwn
todo.mdwn
transfer_control.mdwn
webapp.mdwn
windows.mdwn
xmpp.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00
xmpp_security.mdwn roadmap for next year's work 2013-07-23 18:46:09 -04:00