summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-06-28 14:00:25 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-06-28 14:00:25 -0400
commit343ecf999a1ecb700ba2973763fc9237576dcc1c (patch)
tree60db1eb714b9a4d9e750f587a7526f186ba5babe
parente4596a133e1c6781bd8dd369448f11dc602d0d28 (diff)
post my current set of ideas for handling unlocking
-rw-r--r--doc/bugs/watcher_commits_unlocked_files.mdwn67
1 files changed, 26 insertions, 41 deletions
diff --git a/doc/bugs/watcher_commits_unlocked_files.mdwn b/doc/bugs/watcher_commits_unlocked_files.mdwn
index b80759376..ef64921f1 100644
--- a/doc/bugs/watcher_commits_unlocked_files.mdwn
+++ b/doc/bugs/watcher_commits_unlocked_files.mdwn
@@ -1,43 +1,28 @@
-When having "git annex watch" running, unlocking files causes the watcher to immediately lock/commit them. Observe:
+When having "git annex watch" running, unlocking files causes the watcher
+to immediately lock/commit them.
- bram@falafel% git annex unlock
- unlock 01 - Crunchy Joe (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 02 - Get Busy Living (featuring Emily Bruce).flac (copying...) ok
- unlock 03 - Show You How.flac (copying...) ok
- unlock 04 - Call Me (featuring Monique Hellenberg).flac (copying...) ok
- unlock 05 - Humbug (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 06 - Brush Your Hair.flac (copying...) ok
- unlock 07 - We Come Together (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 08 - In Too Deep (featuring Emily Bruce).flac (copying...) ok
- unlock 09 - My Rainbow.flac (copying...) ok
- unlock 10 - Big Band Wolf.flac (copying...) ok
- (Recording state in git...)
- bram@falafel% ls -l 01\ -\ Crunchy\ Joe\ \(featuring\ Sakhile\ Moleshe\).flac
- lrwxrwxrwx 1 bram bram 208 Jul 18 2011 01 - Crunchy Joe (featuring Sakhile Moleshe).flac -> ../../.git/annex/objects/KX/15/SHA256E-s23981083--5ffd30042e313f8e10cf51ded59c369dd03a600fa3b8c13962f833694af449b5.flac/SHA256E-s23981083--5ffd30042e313f8e10cf51ded59c369dd03a600fa3b8c13962f833694af449b5.flac
- bram@falafel% tail ~/Media/.git/annex/daemon.log
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/04 - Call Me (featuring Monique Hellenberg).flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/03 - Show You How.flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/02 - Get Busy Living (featuring Emily Bruce).flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/10 - Big Band Wolf.flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/09 - My Rainbow.flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/08 - In Too Deep (featuring Emily Bruce).flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/07 - We Come Together (featuring Sakhile Moleshe).flac (checksum...) ok
- add ./Uncategorized/Goldfish - Get Busy Living (2010)/06 - Brush Your Hair.flac (checksum...) ok
- (Recording state in git...)
- (Recording state in git...)
- bram@falafel% git annex watch --stop
- bram@falafel% git annex unlock
- unlock 01 - Crunchy Joe (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 02 - Get Busy Living (featuring Emily Bruce).flac (copying...) ok
- unlock 03 - Show You How.flac (copying...) ok
- unlock 04 - Call Me (featuring Monique Hellenberg).flac (copying...) ok
- unlock 05 - Humbug (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 06 - Brush Your Hair.flac (copying...) ok
- unlock 07 - We Come Together (featuring Sakhile Moleshe).flac (copying...) ok
- unlock 08 - In Too Deep (featuring Emily Bruce).flac (copying...) ok
- unlock 09 - My Rainbow.flac (copying...) ok
- unlock 10 - Big Band Wolf.flac (copying...) ok
- bram@falafel% ls -l 01\ -\ Crunchy\ Joe\ \(featuring\ Sakhile\ Moleshe\).flac
- -rw-r--r-- 1 bram bram 23981083 Jul 18 2011 01 - Crunchy Joe (featuring Sakhile Moleshe).flac
+----
-This is using git-annex 3.20120624 on Ubuntu, compiled with cabal (I upgraded my libghc-stm-dev package, as you mentioned in another bug, to get the watch command working on this version).
+Possible approaches:
+
+* The watcher could detect unlocked files by checking if newly added files
+ are a typechange of a file already in git. But this would add git overhead
+ to every file add.
+* `git annex unlock` could add some type of flag file, which the assistant
+ could check. This would work fine, for users who want to use `git annex
+ unlock` with the assistant. That's probably not simple enough for most
+ users, though.
+* There could be a UI in the assistant to pick a file and unlock it.
+ The assistant would have its own list of files it knows are unlocked.
+ But I'm trying to avoid mandatory UI to use the assistant.
+* Perhaps instead, have a directory, like "edit". The assistant could notice
+ when files move into this special directory, and automatically unlock them.
+ Then when they're moved out, automatically commit them.
+* Alternatively, files that are moved out of the repository entirely could be
+ automatically unlocked, and then when they're moved back in, it would
+ automatically do the right thing. This may be worth implementing in
+ combination with the "edit" directory, as different use cases would work
+ better with one or the other. However, I don't currently get inotify
+ events when files are moved out of the repository (well, I do, but it
+ just says "file moved", with no forwarding address, so I don't know
+ how to find the file to unlock it.