Recent changes to this wiki:

diff --git a/doc/bugs/__91__Android__93___5.0_needs_PIE_executables___40__git_annex_does_not_work_on_android_5.0__41__.mdwn b/doc/bugs/__91__Android__93___5.0_needs_PIE_executables___40__git_annex_does_not_work_on_android_5.0__41__.mdwn
new file mode 100644
index 0000000..2aa4ae2
--- /dev/null
+++ b/doc/bugs/__91__Android__93___5.0_needs_PIE_executables___40__git_annex_does_not_work_on_android_5.0__41__.mdwn
@@ -0,0 +1,18 @@
+### Please describe the problem.
+Android 5.0 (apparently) requires PIE executables. [You get "error: only position independent executables (PIE) are supported.")
+
+### What steps will reproduce the problem?
+Trying to start git annex (or the webapp) on android 5.0
+
+### What version of git-annex are you using? On what operating system?
+Currently nightly on Android 5.0 (Nexus 5)
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]

typo fix: mant -> many
diff --git a/doc/direct_mode.mdwn b/doc/direct_mode.mdwn
index 5de9b63..bd0cb81 100644
--- a/doc/direct_mode.mdwn
+++ b/doc/direct_mode.mdwn
@@ -3,7 +3,7 @@ git, and in turn point at the content of large files that is stored in
 `.git/annex/objects/`. Direct mode gets rid of the symlinks.
 
 The advantage of direct mode is that you can access files directly,
-including modifying them. The disadvantage is that mant regular git
+including modifying them. The disadvantage is that many regular git
 commands cannot be used in a direct mode repository, since they don't
 understand how to update its working tree.
 

diff --git a/doc/forum/weird_view_file_naming.mdwn b/doc/forum/weird_view_file_naming.mdwn
new file mode 100644
index 0000000..1520c6a
--- /dev/null
+++ b/doc/forum/weird_view_file_naming.mdwn
@@ -0,0 +1,13 @@
+Very quick one, if anyone has to share experience with views (i would find them useful to get partial checkout views, as long as I can find a special setup to preserve the tree/filenames hyerarchy): 
+
+by using (filtering) views I am getting file names changed to include the (orignal) dir name,
+for instance:
+
+2008/pippo.doc
+
+after a git annex view 2008/=*, comes out as pippo_%2008%.doc
+is this avoidable ?
+
+(i've been trying to follow metadata walkthrough etc. but i always get the dirname in the filename between percents...)
+
+btw: version is 5.20141105

diff --git a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
index d96d3ec..3ee7fae 100644
--- a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
+++ b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
@@ -24,4 +24,4 @@ How can I recover them?
 
 EDIT 2
 -------
-Seems that I overwritten my repo with a new repo. Because git log only shows 4 entries from today.
+Seems that I overwritten my repo with a new repo. Because git log only shows 4 entries from today. Is it possible that the webapp has made that?

diff --git a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
index 81c0864..d96d3ec 100644
--- a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
+++ b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
@@ -21,3 +21,7 @@ After digging around a bit, I found that I had the keys, and could find out the
      3 files changed, 3 insertions(+)
 
 How can I recover them?
+
+EDIT 2
+-------
+Seems that I overwritten my repo with a new repo. Because git log only shows 4 entries from today.

diff --git a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
index 34a240d..81c0864 100644
--- a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
+++ b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
@@ -1,9 +1,15 @@
 Dear all,
-        I had (snif!) and indirect repo with 2.7 of pdf files with filenames were manually added by me with author and title, and took years of work. I had them in a git annex repo from quite some time. Now I'm trying to sync them to an usb drive. Main repo lives in an ubuntu box with ext4 filesystem. I failed many times to do this, both on fat and exfat external drives (direct). As I was failing, I tried to to a test on the same local filesystem. So I have my main repo in /home/juan/papers and the other in /tmp/papers. While trying to sync them using the assistant, i noticed that most of the folders and symlinks from the main repo just dissapeared. I still have them in .git/annex/objects but I don't know how to recover the links.
+        I had (snif!) and indirect repo with 2.7 of pdf files with filenames were manually added by me with author and title, and took years of work. I had them in a git annex repo from quite some time.  
+Now I'm trying to sync them to an usb drive. Main repo lives in an ubuntu box with ext4 filesystem. I failed many times to do this, both on fat and exfat external drives (direct).  
+As I was failing, I tried to to a test on the same local filesystem. So I have my main repo in /home/juan/papers and the other in /tmp/papers.  
+While trying to sync them using the assistant, i noticed that most of the folders and symlinks from the main repo just dissapeared. 
+I still have them in .git/annex/objects but I don't know how to recover the links. 
 I must say I'm an everyday git user, and big fan of git-annex but I'm trying to use it for six months without luck. I think I will quit after recovering the data, if possible.
 
-- EDIT 1 -
+EDIT 1
+-------
 After digging around a bit, I found that I had the keys, and could find out the original filename, for example:
+
     git log --stat -S 1279
     commit a6362df13d728037875320a457182acb073d08ea
     Author: Juan Cardelino <x@gmail.com>

diff --git a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
index 9225ec7..34a240d 100644
--- a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
+++ b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
@@ -1,4 +1,17 @@
 Dear all,
         I had (snif!) and indirect repo with 2.7 of pdf files with filenames were manually added by me with author and title, and took years of work. I had them in a git annex repo from quite some time. Now I'm trying to sync them to an usb drive. Main repo lives in an ubuntu box with ext4 filesystem. I failed many times to do this, both on fat and exfat external drives (direct). As I was failing, I tried to to a test on the same local filesystem. So I have my main repo in /home/juan/papers and the other in /tmp/papers. While trying to sync them using the assistant, i noticed that most of the folders and symlinks from the main repo just dissapeared. I still have them in .git/annex/objects but I don't know how to recover the links.
 I must say I'm an everyday git user, and big fan of git-annex but I'm trying to use it for six months without luck. I think I will quit after recovering the data, if possible.
-Thanks for the help guys, I'm very sad.
+
+- EDIT 1 -
+After digging around a bit, I found that I had the keys, and could find out the original filename, for example:
+    git log --stat -S 1279
+    commit a6362df13d728037875320a457182acb073d08ea
+    Author: Juan Cardelino <x@gmail.com>
+    Date:   Fri Nov 21 11:25:31 2014 -0200
+
+     2013_august/feature_matching_by_searching_maximum_clique_on_high_order_association.pdf | 1 +
+     LevelSets/fedkiw/stanford2002-06.pdf                                                   | 1 +
+     new/nfa/00106994.pdf                                                                   | 1 +
+     3 files changed, 3 insertions(+)
+
+How can I recover them?

diff --git a/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
new file mode 100644
index 0000000..9225ec7
--- /dev/null
+++ b/doc/forum/failing_to_add_an_usb_drive_made_me_lose_all_symlinks.mdwn
@@ -0,0 +1,4 @@
+Dear all,
+        I had (snif!) and indirect repo with 2.7 of pdf files with filenames were manually added by me with author and title, and took years of work. I had them in a git annex repo from quite some time. Now I'm trying to sync them to an usb drive. Main repo lives in an ubuntu box with ext4 filesystem. I failed many times to do this, both on fat and exfat external drives (direct). As I was failing, I tried to to a test on the same local filesystem. So I have my main repo in /home/juan/papers and the other in /tmp/papers. While trying to sync them using the assistant, i noticed that most of the folders and symlinks from the main repo just dissapeared. I still have them in .git/annex/objects but I don't know how to recover the links.
+I must say I'm an everyday git user, and big fan of git-annex but I'm trying to use it for six months without luck. I think I will quit after recovering the data, if possible.
+Thanks for the help guys, I'm very sad.

diff --git a/doc/forum/Update_on_remote_repo.mdwn b/doc/forum/Update_on_remote_repo.mdwn
new file mode 100644
index 0000000..4977c41
--- /dev/null
+++ b/doc/forum/Update_on_remote_repo.mdwn
@@ -0,0 +1,6 @@
+Hello,
+
+using the git-annex assistant I can activate auto update on the client machines. What about the server that serves as transfer repository? It needs to have git-annex installed. Is there any possibility of auto update there? What is the recommended procedure?
+
+Thanks,
+Florian

Added a comment: post-receive hook is not an option with FAT drives
diff --git a/doc/forum/USB_backup_with_files_visible/comment_9_dfb830fb00c10b797c3d26179e6dfefd._comment b/doc/forum/USB_backup_with_files_visible/comment_9_dfb830fb00c10b797c3d26179e6dfefd._comment
new file mode 100644
index 0000000..f73f186
--- /dev/null
+++ b/doc/forum/USB_backup_with_files_visible/comment_9_dfb830fb00c10b797c3d26179e6dfefd._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawmicVKRM8vJX4wPuAwlLEoS2cjmFXQkjkE"
+ nickname="Thomas"
+ subject="post-receive hook is not an option with FAT drives"
+ date="2014-11-20T15:53:29Z"
+ content="""
+Hi Joey,
+
+I tried to solve this use case with a post-receive hook and had to realize that FAT does not support the executable bit and thus the hook doesn't run. I've found several requests for the use case described here and I think it would be desirable, if the assistant/webapp could solve it without commandline-hacks.
+
+So I want to stick my thumbdrive in my work desktop and the assistant notices that it's available and starts copying stuff on it and runs git annex merge afterwards.
+
+I also had to manually set annex.diskreserve to a smaller value since annex wants to reserve more space (10G) than is available on most thumb drives. I think git-annex init should be more clever about the default diskreserve value, e.g. set it to a percentage of the total disk size.
+"""]]

Added a comment
diff --git a/doc/forum/Standards_usage_pattern__63__/comment_1_1ccbfaefe3bbaf767e999cd1c61debfb._comment b/doc/forum/Standards_usage_pattern__63__/comment_1_1ccbfaefe3bbaf767e999cd1c61debfb._comment
new file mode 100644
index 0000000..d96585f
--- /dev/null
+++ b/doc/forum/Standards_usage_pattern__63__/comment_1_1ccbfaefe3bbaf767e999cd1c61debfb._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9SYh6N-JUMkYkW4aOk55zC3Vr9KonDV4"
+ nickname="Florian"
+ subject="comment 1"
+ date="2014-11-19T22:01:19Z"
+ content="""
+I think you need at least one server that is reachable from every device and serves as a transfer repository. XMPP is only needed to inform peers about changes. Usual the assistant performs a startup check and detects changes that way. You can't sync content over XMPP. 
+All that is very afaik, I hope for corrections if wrong. 
+"""]]

diff --git a/doc/forum/Standards_usage_pattern__63__.mdwn b/doc/forum/Standards_usage_pattern__63__.mdwn
new file mode 100644
index 0000000..280e909
--- /dev/null
+++ b/doc/forum/Standards_usage_pattern__63__.mdwn
@@ -0,0 +1,8 @@
+Hi,
+
+I have few devices: 2x android, 2x windows, 2x linux and I would like to share at least one folder on all of them.
+None of the devices have public IPs and some regularly change location (work laptops). Because the XMPP support is missing on windows I couldn't find a way to synchronize the repositories (the keys) or did I miss something in the documentation?
+How can I archieve "seamless" synchronization when I start the webapp on the devices?
+
+Thank you,
+Karol

Added a comment
diff --git a/doc/bugs/Internal_server_error_while_adding_remote_server_on_Windows/comment_2_e7ab75a3c4cd6db900bc2b786bda4e8d._comment b/doc/bugs/Internal_server_error_while_adding_remote_server_on_Windows/comment_2_e7ab75a3c4cd6db900bc2b786bda4e8d._comment
new file mode 100644
index 0000000..8557046
--- /dev/null
+++ b/doc/bugs/Internal_server_error_while_adding_remote_server_on_Windows/comment_2_e7ab75a3c4cd6db900bc2b786bda4e8d._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnE6kFAbud1LWrQuyX76yMYnUjHt9tR-A8"
+ nickname="Leonardo"
+ subject="comment 2"
+ date="2014-11-18T14:00:58Z"
+ content="""
+I've installed it using the installer.
+I think the problem might be that recent versions of git install somewhere in %AppData% and not in %ProgramFiles%.
+"""]]

Added a comment: android client
diff --git a/doc/special_remotes/webdav/comment_15_d43673b8c8ed3534f31d026098ab673c._comment b/doc/special_remotes/webdav/comment_15_d43673b8c8ed3534f31d026098ab673c._comment
new file mode 100644
index 0000000..4e78113
--- /dev/null
+++ b/doc/special_remotes/webdav/comment_15_d43673b8c8ed3534f31d026098ab673c._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawn6NYODTE1Sy9YZoi2pvb6i-lcq3dYBxZI"
+ nickname="Karol"
+ subject="android client"
+ date="2014-11-17T18:34:12Z"
+ content="""
+I am stuck at the same problem as Maarten, I cannot create box.com repository..
+"""]]

update for new OSX build
diff --git a/doc/builds.mdwn b/doc/builds.mdwn
index 87f12c9..3d83c90 100644
--- a/doc/builds.mdwn
+++ b/doc/builds.mdwn
@@ -15,8 +15,8 @@
 <h2>Android</h2>
 <iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/4.3/build-version">
 </iframe>
-<h2>OSX Mavericks</h2>
-<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-mavericks/build-version">
+<h2>OSX Yosemite</h2>
+<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/build-version">
 </iframe>
 <h2>Windows</h2>
 <iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/windows/build-version">
@@ -37,8 +37,8 @@
 <h2>Android</h2>
 <iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/android/">
 </iframe>
-<h2>OSX Mavericks</h2>
-<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-mavericks/">
+<h2>OSX Yosemite</h2>
+<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/">
 </iframe>
 <h2><a href="https://qa.nest-initiative.org/view/msysGit/job/msysgit-git-annex-assistant-test/">Windows</a></h2>
 <a href="https://qa.nest-initiative.org/view/msysGit/job/msysgit-git-annex-assistant-test/">here</a>

Added a comment
diff --git a/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_11_b0bd8c98b5a4d67f66f8d64665569490._comment b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_11_b0bd8c98b5a4d67f66f8d64665569490._comment
new file mode 100644
index 0000000..d5cfd74
--- /dev/null
+++ b/doc/bugs/Can__39__t_add_a_git_repo_to_git_annex:___34__Invalid_path_repo__47__.git__47__X__34___for_many_X/comment_11_b0bd8c98b5a4d67f66f8d64665569490._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="diafygi"
+ subject="comment 11"
+ date="2014-11-17T00:54:08Z"
+ content="""
+FYI, comment #10's solution doesn't work. Apparently, git-annex also ignores any `.*` directory or file (can't find documentation on this?).
+
+Unfortunately, this a dealbreaker for me. I wanted to use git-annex in my office to sync my work folder (which includes a several git repos) across three computers.
+
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_5_7ee571496c6d7cd57a206e6356dc2be3._comment b/doc/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_5_7ee571496c6d7cd57a206e6356dc2be3._comment
new file mode 100644
index 0000000..962f98e
--- /dev/null
+++ b/doc/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_5_7ee571496c6d7cd57a206e6356dc2be3._comment
@@ -0,0 +1,166 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnDx6KWBl4PpP7qikNB7rp0hK_UvwQq_L0"
+ nickname="Александр"
+ subject="comment 5"
+ date="2014-11-16T12:32:28Z"
+ content="""
+Thanks Walter, renaud.
+
+I was finally able to consitently reproduce the bug and record clean debug logs.
+
+There are 3 repos, \"arch\", \"man1\", \"man2\". They are on different machines connected via ssh. \"arch\" is archive, \"man1\" and \"man2\" are in manual mode. Assistant is started only at \"man1\" with args -v -d, after that some files are added. Assistant detects them, adds and then transfers to \"arch\", this works as expected.
+
+After that in \"man2\" I run command:
+
+    git annex get --from man1 random_1_24
+
+File is successfully transferred, and then assistant removes it from \"man1\". Here is corresponding part of logs at \"man1\":
+
+    [2014-11-16 15:10:12 MSK] TransferWatcher: transfer starting: Upload UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\" random_1_24 Nothing
+    [2014-11-16 15:10:12 MSK] TransferWatcher: transfer starting: Upload UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\" random_1_24 Nothing
+    [2014-11-16 15:10:13 MSK] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\", transferKey = Key {keyName = \"f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b\", keyBackendName = \"SHA256E\", keySize = Just 3145728, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}}
+    [2014-11-16 15:10:13 MSK] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\", transferKey = Key {keyName = \"f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b\", keyBackendName = \"SHA256E\", keySize = Just 3145728, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}}
+    [2014-11-16 15:10:14 MSK] RemoteControl: SYNCING ssh://jolla:2222//home/nemo/annex_test
+    [2014-11-16 15:10:14 MSK] RemoteControl: Syncing with man2 
+    From ssh://jolla:2222//home/nemo/annex_test
+    d20436c..f7aff95  git-annex  -> man1/git-annex
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"show-ref\",\"git-annex\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..ea323207549cd5853213f1aeaf5f3c1f32e79fe9\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] RemoteControl: DONESYNCING ssh://jolla:2222//home/nemo/annex_test 1
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..5701db750b10ae4d579bbccee828c808c8031e7e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..08e7fcc374ee7e233f5f26c0bb7ff825a673818e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..959215d3a9eae6a65ec5e6c68f345f9f623a0d1e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..f7aff95774a095ccf3a5b11bf2e27108d6aadf58\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..4aae0d044273fd8716c4cf4946126b0ebf2e0db3\",\"-n1\",\"--pretty=%H\"]
+    (merging man1/git-annex into git-annex...)
+    [2014-11-16 15:10:14 MSK] feed: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"update-index\",\"-z\",\"--index-info\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"diff-index\",\"--raw\",\"-z\",\"-r\",\"--no-renames\",\"-l0\",\"--cached\",\"f7aff95774a095ccf3a5b11bf2e27108d6aadf58\"]
+    [2014-11-16 15:10:14 MSK] chat: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"hash-object\",\"-t\",\"blob\",\"-w\",\"--stdin\",\"--no-filters\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"f7aff95774a095ccf3a5b11bf2e27108d6aadf58..refs/heads/git-annex\",\"-n1\",\"--pretty=%H\"]
+    (Recording state in git...)
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"write-tree\"]
+    [2014-11-16 15:10:14 MSK] chat: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"commit-tree\",\"dd91fafe3d6acfe88b41c677e66507c0f1905175\",\"--no-gpg-sign\",\"-p\",\"refs/heads/git-annex\",\"-p\",\"f7aff95774a095ccf3a5b11bf2e27108d6aadf58\"]
+    [2014-11-16 15:10:14 MSK] call: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"update-ref\",\"refs/heads/git-annex\",\"2ad4a45d95a29db1ecc84a49d5c68bf709f2b3db\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"show-ref\",\"git-annex\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..2ad4a45d95a29db1ecc84a49d5c68bf709f2b3db\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..5701db750b10ae4d579bbccee828c808c8031e7e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..08e7fcc374ee7e233f5f26c0bb7ff825a673818e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..959215d3a9eae6a65ec5e6c68f345f9f623a0d1e\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..f7aff95774a095ccf3a5b11bf2e27108d6aadf58\",\"-n1\",\"--pretty=%H\"]
+    [2014-11-16 15:10:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"log\",\"refs/heads/git-annex..4aae0d044273fd8716c4cf4946126b0ebf2e0db3\",\"-n1\",\"--pretty=%H\"]
+    drop random_1_24 (checking arch...) [2014-11-16 15:10:23 MSK] call: ssh [\"-S\",\".git/annex/ssh/axe\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"axe\",\"git-annex-shell 'inannex' '//home/butler/annex_test' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid 5aaf3dc8-f94c-4949-8491-26d5d0de5127\"]
+    ok
+    [2014-11-16 15:10:23 MSK] dropped random_1_24 (from here) (copies now 2) : drop wanted after Upload UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\" random_1_24 Nothing
+    drop man2 random_1_24 (checking arch...) [2014-11-16 15:10:23 MSK] call: ssh [\"-S\",\".git/annex/ssh/axe\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"axe\",\"git-annex-shell 'inannex' '//home/butler/annex_test' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid 5aaf3dc8-f94c-4949-8491-26d5d0de5127\"]
+    [2014-11-16 15:10:23 MSK] call: ssh [\"-S\",\".git/annex/ssh/jolla!2222\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-p\",\"2222\",\"-T\",\"jolla\",\"git-annex-shell 'dropkey' '//home/nemo/annex_test' '--quiet' '--force' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid d865391b-cf21-42d6-a04c-e1b32897c1af\"]
+    ok
+    [2014-11-16 15:10:23 MSK] dropped random_1_24 (from UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\") (copies now 1) : drop wanted after Upload UUID \"d865391b-cf21-42d6-a04c-e1b32897c1af\" random_1_24 Nothing
+    [2014-11-16 15:11:14 MSK] read: git [\"--git-dir=/home/butler/annex_test/.git\",\"--work-tree=/home/butler/annex_test\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
+
+Here is git annex vicfg at \"man1\":
+
+    # git-annex configuration
+    # 
+    # Changes saved to this file will be recorded in the git-annex branch.
+    # 
+    # Lines in this file have the format:
+    #   setting field = value
+
+    # Repository trust configuration
+    # (Valid trust levels: trusted semitrusted untrusted dead)
+    # (for web)
+    #trust 00000000-0000-0000-0000-000000000001 = semitrusted
+    # (for man2)
+    #trust 2104670a-6a96-11e4-a3ca-0f84dcf32d24 = semitrusted
+    # (for [arch])
+    #trust 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = semitrusted
+    # (for [man2])
+    #trust d865391b-cf21-42d6-a04c-e1b32897c1af = semitrusted
+    # (for man1)
+    #trust f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = semitrusted
+
+    # Repository groups
+    # (Standard groups: client transfer backup incrementalbackup smallarchive archive source manual public unwanted)
+    # (Separate group names with spaces)
+    # (for [arch])
+    group 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = archive
+    # (for [man2])
+    group d865391b-cf21-42d6-a04c-e1b32897c1af = manual
+    # (for man1)
+    group f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = manual
+    # (for web)
+    #group 00000000-0000-0000-0000-000000000001 = 
+    # (for man2)
+    #group 2104670a-6a96-11e4-a3ca-0f84dcf32d24 = 
+
+    # Repository preferred contents
+    # (Set to \"standard\" to use a repository's group's preferred contents)
+    # (for [arch])
+    wanted 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = standard
+    # (for [man2])
+    wanted d865391b-cf21-42d6-a04c-e1b32897c1af = standard
+    # (for man1)
+    wanted f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = standard
+    # (for web)
+    #wanted 00000000-0000-0000-0000-000000000001 = 
+    # (for man2)
+    #wanted 2104670a-6a96-11e4-a3ca-0f84dcf32d24 = 
+
+    # Group preferred contents
+    # (Used by repositories with \"groupwanted\" in their preferred contents)
+    #groupwanted archive = 
+    #groupwanted backup = 
+    #groupwanted client = 
+    #groupwanted incrementalbackup = 
+    #groupwanted manual = 
+    #groupwanted public = 
+    #groupwanted smallarchive = 
+    #groupwanted source = 
+    #groupwanted transfer = 
+    #groupwanted unwanted = 
+
+    # Standard preferred contents
+    # (Used by wanted or groupwanted expressions containing \"standard\")
+    # (For reference only; built-in and cannot be changed!)
+    # standard client = (((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1
+    # standard transfer = (not (inallgroup=client and copies=client:2) and ((((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1)) or approxlackingcopies=1
+    # standard backup = include=* or unused
+    # standard incrementalbackup = ((include=* or unused) and (not copies=incrementalbackup:1)) or approxlackingcopies=1
+    # standard smallarchive = ((include=*/archive/* or include=archive/*) and ((not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1)) or approxlackingcopies=1
+    # standard archive = (not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1
+    # standard source = not (copies=1)
+    # standard manual = present and ((((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1)
+    # standard public = inpreferreddir
+    # standard unwanted = exclude=*
+
+    # Repository required contents
+    # (for web)
+    #required 00000000-0000-0000-0000-000000000001 =
+    # (for man2)
+    #required 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
+    # (for [arch])
+    #required 5aaf3dc8-f94c-4949-8491-26d5d0de5127 =
+    # (for [man2])
+    #required d865391b-cf21-42d6-a04c-e1b32897c1af =
+    # (for man1)
+    #required f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 =
+
+    # Scheduled activities
+    # (Separate multiple activities with \"; \")
+    # (for web)
+    #schedule 00000000-0000-0000-0000-000000000001 =
+    # (for man2)
+    #schedule 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
+    # (for [arch])
+    #schedule 5aaf3dc8-f94c-4949-8491-26d5d0de5127 =
+    # (for [man2])
+    #schedule d865391b-cf21-42d6-a04c-e1b32897c1af =
+    # (for man1)
+    #schedule f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 =                                                  
+
+Please let me know if I can provide more information, some extra logs, traces, recompile git-annex, etc.
+
+"""]]

Added a comment: details
diff --git a/doc/forum/Shared_Encryption_does_not_Work_as_Expected/comment_1_793c71a1efcf160e1829bec3ef0b1be6._comment b/doc/forum/Shared_Encryption_does_not_Work_as_Expected/comment_1_793c71a1efcf160e1829bec3ef0b1be6._comment
new file mode 100644
index 0000000..25424d4
--- /dev/null
+++ b/doc/forum/Shared_Encryption_does_not_Work_as_Expected/comment_1_793c71a1efcf160e1829bec3ef0b1be6._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf574"
+ nickname="Mica Semrick"
+ subject="details"
+ date="2014-11-16T04:42:36Z"
+ content="""
+Hello, 
+
+It is hard to say what happened without an error message or description of what you did. Perhaps you can share those details.
+"""]]

Change startup command to "git-annex webapp"
diff --git a/doc/bugs/Default_startup_command.mdwn b/doc/bugs/Default_startup_command.mdwn
new file mode 100644
index 0000000..172733f
--- /dev/null
+++ b/doc/bugs/Default_startup_command.mdwn
@@ -0,0 +1,27 @@
+### Please describe the problem.
+On a CM11 4.4.4 install, the startup will fail with the default startup command "git annex webapp".
+The error message shown is:  
+```
+Falling back to hardcoded app location; cannot find expected files in /data/app-lib
+git annex webapp
+```
+
+However, using "git-annex webapp", git-annex will run fine.
+
+### What steps will reproduce the problem?
+
+Launch the beta or nightly build for 4.3 and 4.4, wait for error message
+
+### What version of git-annex are you using? On what operating system?
+
+Version "current" as of 2014-11-15 and also version "nightly build" as of 2014-11-15 on Android 4.4.4 CM11, device: Oppo Find 7a
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]

Added a comment
diff --git a/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_3_45ae862d4f940341d48d179583e65d66._comment b/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_3_45ae862d4f940341d48d179583e65d66._comment
new file mode 100644
index 0000000..294ca5f
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_3_45ae862d4f940341d48d179583e65d66._comment
@@ -0,0 +1,38 @@
+[[!comment format=mdwn
+ username="https://renaud.casenave.fr/"
+ subject="comment 3"
+ date="2014-11-15T02:07:38Z"
+ content="""
+Well it's been a week and still no luck compiling git-annex using cabal :(
+
+I'm blocked here (at pretty much the start):
+
+    % cabal install --only-dependencies
+    Resolving dependencies...
+    cabal: Could not resolve dependencies:
+    trying: git-annex-5.20141125 (user goal)
+    trying: git-annex-5.20141125:+tahoe
+    trying: git-annex-5.20141125:+dns
+    trying: aeson-0.6.0.2/installed-5b6... (dependency of
+    git-annex-5.20141125:+tahoe)
+    trying: vector-0.9.1/installed-5fe... (dependency of
+    aeson-0.6.0.2/installed-5b6...)
+    trying: dns-1.4.4 (dependency of git-annex-5.20141125:+dns)
+    next goal: network (dependency of dns-1.4.4)
+    rejecting: network-2.3.0.13/installed-0e3... (conflict:
+    git-annex-5.20141125:network-uri => network(>=2.6))
+    trying: network-2.6.0.2
+    next goal: conduit-extra (dependency of dns-1.4.4)
+    rejecting: conduit-extra-1.1.4.2, 1.1.4.1, 1.1.4, 1.1.3.4, 1.1.3.3, 1.1.3.2,
+    1.1.3.1, 1.1.3, 1.1.2, 1.1.1, 1.1.0.4 (conflict: vector =>
+    primitive==0.4.1/installed-505..., conduit-extra => primitive>=0.5)
+    rejecting: conduit-extra-1.1.0.3, 1.1.0.2, 1.1.0.1 (conflict: vector =>
+    primitive==0.4.1/installed-505..., conduit-extra => primitive>=0.5 && <0.6)
+    rejecting: conduit-extra-1.1.0 (conflict: network==2.6.0.2, conduit-extra =>
+    network>=2.3 && <2.5)
+    rejecting: conduit-extra-1.0.0.1, 1.0.0, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3,
+    0.1.2, 0.1.1, 0.1.0 (conflict: dns => conduit-extra>=1.1)
+    zsh: exit 1     cabal install --only-dependencies
+
+Should I just wait for the maintainers to fix the dependencies? Or is there another way?
+"""]]

Added a comment: Linux to OS X ~/.ssh/git-annex-shell
diff --git a/doc/forum/OSX__39__s_default_sshd_behaviour_has_limited_paths_set/comment_2_5fcc52a62770fb932a4a2101f5badbc0._comment b/doc/forum/OSX__39__s_default_sshd_behaviour_has_limited_paths_set/comment_2_5fcc52a62770fb932a4a2101f5badbc0._comment
new file mode 100644
index 0000000..bb8f3ee
--- /dev/null
+++ b/doc/forum/OSX__39__s_default_sshd_behaviour_has_limited_paths_set/comment_2_5fcc52a62770fb932a4a2101f5badbc0._comment
@@ -0,0 +1,17 @@
+[[!comment format=mdwn
+ username="ewen"
+ subject="Linux to OS X ~/.ssh/git-annex-shell"
+ date="2014-11-15T00:02:02Z"
+ content="""
+I installed git-annex on OS/X 10.9 (Mavericks) from the DMG file (the 10.10 DMG file from 2014-11-11, since there was no longer one linked for Mavericks -- it does seem to work locally on 10.9).  Separately I installed git-annex 5.20141024~bpo70+1 on Debian Wheezy, from Backports.  I created a git-annex on the OS X system, and was then trying to set up another git-annex of that on the Linux system, initiated from the Linux system.  After some ssh tunnel magic (due to a firewall stopping git-annex's dream that everything can ssh into everything else without problems), I was able to \"git clone\" and \"git annex init\" on the Linux system.  But ran into problems trying to initiate a \"git annex sync\" from the Linux end.
+
+In particular I got this \"bash: git-annex-shell: command not found\" report, despite the fact that the OS X side *does* have \"~/.ssh/git-annex-shell\" (apparently set up when I ran git-annex on the OS X side first), and on the OS/X side running \"~/.ssh/git-annex-shell\" does work (well it says \"bad parameters\" and gives a list of commands).
+
+It's not clear to me how git-annex is expecting that ~/.ssh/git-annex-shell will end up being found by the ssh connection initiated from the Linux side.  AFAICT from \"git annex sync --debug REMOTE\" (and strace), all that the client end is running is a bare \"git-annex-shell\", so (a) it'd only be searching the path (as per original post), (b) it shouldn't be affected by the different expansion of ~ on Linux and OS/X (/home/ewen and /Users/ewen respectively -- the OS defaults), and (c) AFAICT nothing is adding ~/.ssh to the PATH.  Maybe running something more from the DMG than just the command line \"git-annex\" sets something else up, which I'm expected to set up by hand, that makes \"~/.ssh/git-annex-shell\" be found?
+
+I ended up working around it by noticing that the ssh shell was reading ~/.bashrc (which adds some of my local directories to the PATH), so I was able to add yet another helper script in that directory (~/.bin/, in my case).  Beware it does have to be a direct symlink to the directory with the rest of the git-annex files though, not via another symlink, because the helper scripts only do one level of readlink.  After that it seems to work.
+
+(Possibly these \"make this command available on the PATH at this time\" dependencies could stand to be better documented on the OS X install page?)
+
+Ewen
+"""]]

devbog
diff --git a/doc/devblog/day_234__undo_undo.mdwn b/doc/devblog/day_234__undo_undo.mdwn
new file mode 100644
index 0000000..270bee5
--- /dev/null
+++ b/doc/devblog/day_234__undo_undo.mdwn
@@ -0,0 +1,6 @@
+Built the `git annex undo` command. This is intended to be a simple
+interface for users who have changed one file, and want to undo the change
+without the complexities of `git revert` or `git annex proxy`. It's simple
+enough that I added undo as an action in the file manager integration.
+
+And yes, you can undo an undo. :)

diff --git a/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
index 675ad8c..93765a2 100644
--- a/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
+++ b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
@@ -10,7 +10,7 @@ When first installing the Android app, it opens the browser to the "Welcome to g
 
 ### What version of git-annex are you using? On what operating system?
 
-Current (2014-11-14) Android 4.3/4.4 build. I don't see a way to find version info about the Android app itself, but the terminal output for "version" says it's running git-annex version 5.20141104-gcaafd06
+Current (2014-11-14) Android 4.3/4.4 build on a non-rooted Moto X. I don't see a way to find version info about the Android app itself, but the terminal output for "version" says it's running git-annex version 5.20141104-gcaafd06
 
 ### Please provide any additional information below.
 

diff --git a/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
index 50d62c5..675ad8c 100644
--- a/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
+++ b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
@@ -10,7 +10,7 @@ When first installing the Android app, it opens the browser to the "Welcome to g
 
 ### What version of git-annex are you using? On what operating system?
 
-Android. I don't see a way to find version info about the Android app itself, but the terminal output for "version" says it's running git-annex version 5.20141104-gcaafd06
+Current (2014-11-14) Android 4.3/4.4 build. I don't see a way to find version info about the Android app itself, but the terminal output for "version" says it's running git-annex version 5.20141104-gcaafd06
 
 ### Please provide any additional information below.
 

Add undo action to nautilus and konqueror integration.
diff --git a/Assistant/Install.hs b/Assistant/Install.hs
index bba1c5d..2e57bd3 100644
--- a/Assistant/Install.hs
+++ b/Assistant/Install.hs
@@ -92,18 +92,20 @@ installWrapper file content = do
 installFileManagerHooks :: FilePath -> IO ()
 #ifdef linux_HOST_OS
 installFileManagerHooks program = do
+	let actions = ["get", "drop", "undo"]
+
 	-- Gnome
 	nautilusScriptdir <- (\d -> d </> "nautilus" </> "scripts") <$> userDataDir
 	createDirectoryIfMissing True nautilusScriptdir
-	genNautilusScript nautilusScriptdir "get"
-	genNautilusScript nautilusScriptdir "drop"
+	forM_ actions $
+		genNautilusScript nautilusScriptdir
 
 	-- KDE
 	home <- myHomeDir
 	let kdeServiceMenusdir = home </> ".kde" </> "share" </> "kde4" </> "services" </> "ServiceMenus"
 	createDirectoryIfMissing True kdeServiceMenusdir
 	writeFile (kdeServiceMenusdir </> "git-annex.desktop")
-		(kdeDesktopFile ["get", "drop"])
+		(kdeDesktopFile actions)
   where
 	genNautilusScript scriptdir action =
 		installscript (scriptdir </> scriptname action) $ unlines
diff --git a/debian/changelog b/debian/changelog
index aebcab6..cc5e33a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,7 @@ git-annex (5.20141126) UNRELEASED; urgency=medium
     including git revert, git mv, git checkout ...
   * undo: New command to undo the most recent change to a file
     or to the contents of a directory.
+  * Add undo action to nautilus and konqueror integration.
   * Work around behavior change in lsof 4.88's -F output format.
   * Debian package is now maintained by Gergely Nagy.
 
diff --git a/doc/tips/file_manager_integration.mdwn b/doc/tips/file_manager_integration.mdwn
index 8f47a3d..4429b90 100644
--- a/doc/tips/file_manager_integration.mdwn
+++ b/doc/tips/file_manager_integration.mdwn
@@ -1,5 +1,6 @@
 Integrating git-annex and your file manager provides an easy way to select
-annexed files to get or drop.
+annexed files to get or drop. The file manager can also be used to undo
+changes to file managed by git-annex.
 
 [[!toc]]
 
@@ -25,13 +26,20 @@ This is set up by git-annex creating a
 
 ## XFCE (Thunar)
 
-XFCE uses the Thunar file manager, which can also be easily configured to allow for custom actions. Just go to the "Configure custom actions..." item in the "Edit" menu, and create a custom action for get and drop with the following commands:
+XFCE uses the Thunar file manager, which can also be easily configured to
+allow for custom actions. Just go to the "Configure custom actions..." item
+in the "Edit" menu, and create a custom action for get, drop, and undo with the
+following commands:
 
     git-annex drop --notify-start --notify-finish -- %F
 
 for drop, and for get:
 
     git-annex get --notify-start --notify-finish -- %F
+    
+and for undo:
+
+    git-annex undo --notify-start --notify-finish -- %F
 
 This gives me the resulting config on disk, in `.config/Thunar/uca.xml`:
 
@@ -68,7 +76,9 @@ The complete instructions on how to setup actions is [in the XFCE documentation]
 
 ## OS X (Finder)
 
-For OS X, it is possible to get context menus in Finder. Due to how OS X deals with sym links, one needs to operate on folders if using indirect mode. Direct mode operation has not been tested.
+For OS X, it is possible to get context menus in Finder. Due to how OS X
+deals with sym links, one needs to operate on folders if using indirect
+mode. Direct mode operation has not been tested.
 
 1. Open Automator and create a new Service.
 2. Using the Drop down menus in the top create the sentence "Service receives selected folders in Finder.app" to have it work on folders. For direct mode operation it is probably reasonable to select "files or folders".
@@ -81,7 +91,9 @@ For OS X, it is possible to get context menus in Finder. Due to how OS X deals w
             cd "$(dirname "$f")" && git-annex get "$f"
         done
 
-The purpose of the first line is there to get git-annex on to the path. The reason for the for loop is in case multiple files or folders are marked when running the context menu command.
+The purpose of the first line is there to get git-annex on to the path. The
+reason for the for loop is in case multiple files or folders are marked
+when running the context menu command.
 
 Finally save the the workflow under the name for which it should be listed in the context menu.
 

diff --git a/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
new file mode 100644
index 0000000..50d62c5
--- /dev/null
+++ b/doc/bugs/__91__Android__93_____34__Make_Camera_Repository__34___button_goes_to_blank_page.mdwn
@@ -0,0 +1,17 @@
+### Please describe the problem.
+
+When first installing the Android app, it opens the browser to the "Welcome to git-annex!" page. There is a big button to "Make Camera Repository". I click it, and am brought to a completely blank page. If I re-open the web app, it does appear to have created the DCIM repository (it shows in the repository list), but should probably show something (a confirmation, at least?) on that page.
+
+### What steps will reproduce the problem?
+
+1. Install the android app
+2. Run it
+3. Click the "Make Camera Repository" button
+
+### What version of git-annex are you using? On what operating system?
+
+Android. I don't see a way to find version info about the Android app itself, but the terminal output for "version" says it's running git-annex version 5.20141104-gcaafd06
+
+### Please provide any additional information below.
+
+

Windows: Remove Alt+A keyboard shortcut, which turns out to have scope outside the menus.
diff --git a/Build/NullSoftInstaller.hs b/Build/NullSoftInstaller.hs
index 22d3caf..913472a 100644
--- a/Build/NullSoftInstaller.hs
+++ b/Build/NullSoftInstaller.hs
@@ -123,7 +123,6 @@ makeInstaller gitannex license extrabins launchers = nsis $ do
 		, StartOptions "SW_SHOWNORMAL"
 		, IconFile "$INSTDIR/cmd/git-annex.exe"
 		, IconIndex 2
-		, KeyboardShortcut "ALT|CONTROL|a"
 		, Description "git-annex webapp"
 		]
 	createShortcut autoStartItem
diff --git a/debian/changelog b/debian/changelog
index 09d609c..df71f15 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,8 @@ git-annex (5.20141126) UNRELEASED; urgency=medium
     including git revert, git mv, git checkout ...
   * Work around behavior change in lsof 4.88's -F output format.
   * Debian package is now maintained by Gergely Nagy.
+  * Windows: Remove Alt+A keyboard shortcut, which turns out to have scope
+    outside the menus.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 10 Nov 2014 15:31:55 -0400
 
diff --git a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
index bdf8220..4d48078 100644
--- a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
+++ b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
@@ -17,3 +17,6 @@ The newest version, Windows 8.
 
 # End of transcript or log.
 """]]
+
+> Seems I misunderstood, I thought that would only apply in the start menu.
+> Removed the shortcut. [[done]] --[[Joey]]

Added a comment: Other loop strategy?
diff --git a/doc/todo/find_unused_in_any_commit/comment_1_cecdf4e8600fbcf5d1541e35a91fb37b._comment b/doc/todo/find_unused_in_any_commit/comment_1_cecdf4e8600fbcf5d1541e35a91fb37b._comment
new file mode 100644
index 0000000..04fe626
--- /dev/null
+++ b/doc/todo/find_unused_in_any_commit/comment_1_cecdf4e8600fbcf5d1541e35a91fb37b._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnRFOsnEk8AJg1mXlq3mJDdt1YdYepozE8"
+ nickname="Murmel"
+ subject="Other loop strategy?"
+ date="2014-11-13T21:42:57Z"
+ content="""
+My motiviation to have such a feature is to free space if a key is unused in the \"--ever\" sense. I think it is no problem if this is a slow operation, as you don't use it often. How about this strategy: Loop over keys, for each key find out with something like \"git log -S\" if it is used.
+"""]]

undo command
This commit was sponsored by Andrew Cant.
diff --git a/CmdLine/GitAnnex.hs b/CmdLine/GitAnnex.hs
index 2fca855..70d6477 100644
--- a/CmdLine/GitAnnex.hs
+++ b/CmdLine/GitAnnex.hs
@@ -84,6 +84,7 @@ import qualified Command.Indirect
 import qualified Command.Upgrade
 import qualified Command.Forget
 import qualified Command.Proxy
+import qualified Command.Undo
 import qualified Command.Version
 import qualified Command.Help
 #ifdef WITH_ASSISTANT
@@ -177,6 +178,7 @@ cmds = concat
 	, Command.Upgrade.cmd
 	, Command.Forget.cmd
 	, Command.Proxy.cmd
+	, Command.Undo.cmd
 	, Command.Version.cmd
 	, Command.Help.cmd
 #ifdef WITH_ASSISTANT
diff --git a/Command/Undo.hs b/Command/Undo.hs
new file mode 100644
index 0000000..d47251a
--- /dev/null
+++ b/Command/Undo.hs
@@ -0,0 +1,84 @@
+{- git-annex command
+ -
+ - Copyright 2014 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Command.Undo where
+
+import Common.Annex
+import Command
+import Config
+import Annex.Direct
+import Annex.CatFile
+import Git.DiffTree
+import Git.FilePath
+import Git.UpdateIndex
+import Git.Sha
+import qualified Git.LsFiles as LsFiles
+import qualified Git.Command as Git
+import qualified Git.Branch
+import qualified Command.Sync
+
+cmd :: [Command]
+cmd = [notBareRepo $
+	command "undo" paramPaths seek
+		SectionCommon "undo last change to a file or directory"]
+
+seek :: CommandSeek
+seek ps = do
+	-- Safety first; avoid any undo that would touch files that are not
+	-- in the index.
+	(fs, cleanup) <- inRepo $ LsFiles.notInRepo False ps
+	unless (null fs) $
+		error $ "Cannot undo changes to files that are not checked into git: " ++ unwords fs
+	void $ liftIO $ cleanup
+
+	-- Committing staged changes before undo allows later
+	-- undoing the undo. It would be nicer to only commit staged
+	-- changes to the specified files, rather than all staged changes,
+	-- but that is difficult to do; a partial git-commit can't be done 
+	-- in direct mode.
+	void $ Command.Sync.commitStaged Git.Branch.ManualCommit
+		"commit before undo"
+	
+	withStrings start ps
+
+start :: FilePath -> CommandStart
+start p = do
+	showStart "undo" p
+	next $ perform p
+
+perform :: FilePath -> CommandPerform
+perform p = do
+	g <- gitRepo
+
+	-- Get the reversed diff that needs to be applied to undo.
+	(diff, cleanup) <- inRepo $
+		diffLog [Param "-R", Param "--", Param p]
+	top <- inRepo $ toTopFilePath p
+	let diff' = filter (`isDiffOf` top) diff
+	liftIO $ streamUpdateIndex g (map stageDiffTreeItem diff')
+
+	-- Take two passes through the diff, first doing any removals,
+	-- and then any adds. This order is necessary to handle eg, removing
+	-- a directory and replacing it with a file.
+	let (removals, adds) = partition (\di -> dstsha di == nullSha) diff'
+	let mkrel di = liftIO $ relPathCwdToFile $ fromTopFilePath (file di) g
+
+	forM_ removals $ \di -> do
+		f <- mkrel di
+		whenM isDirect $
+			maybe noop (`removeDirect` f)
+				=<< catKey (srcsha di) (srcmode di)
+		liftIO $ nukeFile f
+
+	forM_ adds $ \di -> do
+		f <- mkrel di
+		inRepo $ Git.run [Param "checkout", Param "--", File f]
+		whenM isDirect $
+			maybe noop (`toDirect` f)
+				=<< catKey (dstsha di) (dstmode di)
+
+	next $ liftIO cleanup
diff --git a/Git/DiffTree.hs b/Git/DiffTree.hs
index 489afa8..d214845 100644
--- a/Git/DiffTree.hs
+++ b/Git/DiffTree.hs
@@ -7,10 +7,12 @@
 
 module Git.DiffTree (
 	DiffTreeItem(..),
+	isDiffOf,
 	diffTree,
 	diffTreeRecursive,
 	diffIndex,
 	diffWorkTree,
+	diffLog,
 ) where
 
 import Numeric
@@ -33,6 +35,13 @@ data DiffTreeItem = DiffTreeItem
 	, file :: TopFilePath
 	} deriving Show
 
+{- Checks if the DiffTreeItem modifies a file with a given name
+ - or under a directory by that name. -}
+isDiffOf :: DiffTreeItem -> TopFilePath -> Bool
+isDiffOf diff f = case getTopFilePath f of
+	"" -> True -- top of repo contains all
+	d -> d `dirContains` getTopFilePath (file diff)
+
 {- Diffs two tree Refs. -}
 diffTree :: Ref -> Ref -> Repo -> IO ([DiffTreeItem], IO Bool)
 diffTree src dst = getdiff (Param "diff-tree")
@@ -66,16 +75,23 @@ diffIndex' ref params repo =
 		, return ([], return True)
 		)
 
+{- Runs git log in --raw mode to get the changes that were made in
+ - a particular commit. The output format is adjusted to be the same
+ - as diff-tree --raw._-}
+diffLog :: [CommandParam] -> Repo -> IO ([DiffTreeItem], IO Bool)
+diffLog params = getdiff (Param "log")
+	(Param "-n1" : Param "--abbrev=40" : Param "--pretty=format:" : params)
+
 getdiff :: CommandParam -> [CommandParam] -> Repo -> IO ([DiffTreeItem], IO Bool)
 getdiff command params repo = do
 	(diff, cleanup) <- pipeNullSplit ps repo
-	return (parseDiffTree diff, cleanup)
+	return (parseDiffRaw diff, cleanup)
   where
 	ps = command : Params "-z --raw --no-renames -l0" : params
 
-{- Parses diff-tree output. -}
-parseDiffTree :: [String] -> [DiffTreeItem]
-parseDiffTree l = go l []
+{- Parses --raw output used by diff-tree and git-log. -}
+parseDiffRaw :: [String] -> [DiffTreeItem]
+parseDiffRaw l = go l []
   where
 	go [] c = c
 	go (info:f:rest) c = go rest (mk info f : c)
diff --git a/Git/UpdateIndex.hs b/Git/UpdateIndex.hs
index ecd154a..a569d77 100644
--- a/Git/UpdateIndex.hs
+++ b/Git/UpdateIndex.hs
@@ -19,7 +19,8 @@ module Git.UpdateIndex (
 	updateIndexLine,
 	stageFile,
 	unstageFile,
-	stageSymlink
+	stageSymlink,
+	stageDiffTreeItem,
 ) where
 
 import Common
@@ -28,6 +29,7 @@ import Git.Types
 import Git.Command
 import Git.FilePath
 import Git.Sha
+import qualified Git.DiffTree as Diff
 
 {- Streamers are passed a callback and should feed it lines in the form
  - read by update-index, and generated by ls-tree. -}
@@ -95,7 +97,10 @@ stageFile sha filetype file repo = do
 unstageFile :: FilePath -> Repo -> IO Streamer
 unstageFile file repo = do
 	p <- toTopFilePath file repo
-	return $ pureStreamer $ "0 " ++ fromRef nullSha ++ "\t" ++ indexPath p
+	return $ unstageFile' p
+
+unstageFile' :: TopFilePath -> Streamer
+unstageFile' p = pureStreamer $ "0 " ++ fromRef nullSha ++ "\t" ++ indexPath p

(Diff truncated)
proxy command is closer to plumbing than a general use command
diff --git a/Command/Proxy.hs b/Command/Proxy.hs
index ef0d4b7..c34b86c 100644
--- a/Command/Proxy.hs
+++ b/Command/Proxy.hs
@@ -19,7 +19,7 @@ import qualified Git.Sha
 cmd :: [Command]
 cmd = [notBareRepo $
 	command "proxy" ("-- git command") seek
-		SectionCommon "safely bypass direct mode guard"]
+		SectionPlumbing "safely bypass direct mode guard"]
 
 seek :: CommandSeek
 seek = withWords start
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index 0e302b4..0fd5b08 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -282,25 +282,6 @@ subdirectories).
   are on a video hosting site, and the video is downloaded. This allows
   importing e.g., youtube playlists.
 
-* `proxy -- git cmd [options]`
-
-  Only useful in a direct mode repository, this runs the specified git
-  command with a temporary work tree, and updates the working tree to
-  reflect any changes staged or committed by the git command.
-  
-  For example, to revert the most recent change that was committed
-  to the repository:
-
-    git annex proxy -- git revert HEAD
-
-  To check out a past version of the repository:
-
-    git annex proxy -- git checkout HEAD^^
-
-  To rename a directory:
-
-    git annex proxy -- git mv mydir newname
-
 * `watch`
 
   Watches for changes to files in the current directory and its subdirectories,
@@ -963,6 +944,25 @@ subdirectories).
   Most MATCHING OPTIONS can be used with findref, to limit the files it
   finds. However, the --include and --exclude options will not work.
 
+* `proxy -- git cmd [options]`
+
+  Only useful in a direct mode repository, this runs the specified git
+  command with a temporary work tree, and updates the working tree to
+  reflect any changes staged or committed by the git command.
+  
+  For example, to revert the most recent change that was committed
+  to the repository:
+
+    git annex proxy -- git revert HEAD
+
+  To check out a past version of the repository:
+
+    git annex proxy -- git checkout HEAD^^
+
+  To rename a directory:
+
+    git annex proxy -- git mv mydir newname
+
 * `resolvemerge`
 
   Resolves a conflicted merge, by adding both conflicting versions of the

diff --git a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
index 00e1f52..bdf8220 100644
--- a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
+++ b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
@@ -3,7 +3,7 @@ After git annex been installed, I cannot any longer (with no hacks) use my right
 After installing git annex for Windows it overtook this shortcut and redirects my browser to a weird localhost server with a weird port.
 
 ### What steps will reproduce the problem?
-Installing git annex for Windows. :)
+Installing git annex for Windows  and tapping rAlt+A. :)
 
 ### What version of git-annex are you using? On what operating system?
 The newest version, Windows 8.

diff --git a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
index da33636..00e1f52 100644
--- a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
+++ b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
@@ -1,6 +1,6 @@
 ### Please describe the problem.
 After git annex been installed, I cannot any longer (with no hacks) use my right ALT+A shortcut creating special char.
-After installing git annex for Windows it overtook this shortcut.
+After installing git annex for Windows it overtook this shortcut and redirects my browser to a weird localhost server with a weird port.
 
 ### What steps will reproduce the problem?
 Installing git annex for Windows. :)

diff --git a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
index 23a5279..da33636 100644
--- a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
+++ b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
@@ -1,5 +1,5 @@
 ### Please describe the problem.
-After git annex been installed, I cannot any longer (with no hacks) use my left ALT+A shortcut creating special char.
+After git annex been installed, I cannot any longer (with no hacks) use my right ALT+A shortcut creating special char.
 After installing git annex for Windows it overtook this shortcut.
 
 ### What steps will reproduce the problem?

diff --git a/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
new file mode 100644
index 0000000..23a5279
--- /dev/null
+++ b/doc/bugs/Git_annex_for_Windows_keyboard_shortcut.mdwn
@@ -0,0 +1,19 @@
+### Please describe the problem.
+After git annex been installed, I cannot any longer (with no hacks) use my left ALT+A shortcut creating special char.
+After installing git annex for Windows it overtook this shortcut.
+
+### What steps will reproduce the problem?
+Installing git annex for Windows. :)
+
+### What version of git-annex are you using? On what operating system?
+The newest version, Windows 8.
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+
+# End of transcript or log.
+"""]]

Work around apparent bug in lsof 4.88's -F output format.
diff --git a/Utility/Lsof.hs b/Utility/Lsof.hs
index e44d131..ae74b25 100644
--- a/Utility/Lsof.hs
+++ b/Utility/Lsof.hs
@@ -93,11 +93,15 @@ parseFormatted s = bundle $ go [] $ lines s
 		_ -> parsefail
 
 	parsefiles c [] = (c, [])
-	parsefiles c (l:ls) = case splitnull l of
-		['a':mode, 'n':file, ""] ->
-			parsefiles ((file, parsemode mode):c) ls
-		(('p':_):_) -> (c, l:ls)
-		_ -> parsefail
+	parsefiles c (l:ls) = parsefiles' c (splitnull l) l ls
+
+	parsefiles' c ['a':mode, 'n':file, ""] _ ls =
+		parsefiles ((file, parsemode mode):c) ls
+	parsefiles' c (('p':_):_) l ls = (c, l:ls)
+	-- Some buggy versions of lsof emit a f field
+	-- that was not requested, so ignore it.
+	parsefiles' c (('f':_):rest) l ls = parsefiles' c rest l ls
+	parsefiles' _ _ _ _ = parsefail
 
 	parsemode ('r':_) = OpenReadOnly
 	parsemode ('w':_) = OpenWriteOnly
diff --git a/debian/changelog b/debian/changelog
index bcf47e3..c3fcd69 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,7 @@ git-annex (5.20141126) UNRELEASED; urgency=medium
   * proxy: New command for direct mode repositories, allows bypassing
     the direct mode guard in a safe way to do all sorts of things
     including git revert, git mv, git checkout ...
+  * Work around apparent bug in lsof 4.88's -F output format.
   * Debian package is now maintained by Gergely Nagy.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 10 Nov 2014 15:31:55 -0400
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
index b914e7f..c374c6d 100644
--- a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
@@ -1,3 +1,5 @@
 lsof got updated to version 4.88 some days ago (in archlinux) and since then the assistant reports the Committer crashed while parsing lsof output.
 
 After reverting to the previous version (4.87), it's working fine.
+
+> [[fixed|done]] --[[Joey]]
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_3_ae25d140e01d9e2a8f76b8f892ff71ec._comment b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_3_ae25d140e01d9e2a8f76b8f892ff71ec._comment
new file mode 100644
index 0000000..b939c29
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_3_ae25d140e01d9e2a8f76b8f892ff71ec._comment
@@ -0,0 +1,42 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2014-11-12T21:27:48Z"
+ content="""
+
+	cat > ~/tmp/dir/foo &
+	lsof -F0can +d ~/tmp/dir
+
+Old:
+
+<pre>
+p15304^@ccat^@
+aw^@n/home/joey/tmp/dir/foo^@
+</pre>
+
+New:
+
+</pre>
+p15304^@ccat^@
+f1^@aw^@n/home/joey/tmp/dir/foo^@
+p15399^@clsof^@
+f1^@aw^@npipe^@
+f4^@aw^@npipe^@
+f5^@ar^@npipe^@
+p15401^@cless^@
+f0^@ar^@npipe^@
+p15402^@clsof^@
+f3^@ar^@npipe^@
+f6^@aw^@npipe^@
+</pre>
+
+It looks like the new lsof has broken/changed -F; the file descriptor field
+is being showed even though -F0can does not request it.
+
+IMHO this is a bug in lsof.
+
+Additionally, the new lsof shows processes that have open pipes, even
+when it's been asked to show only files under a given directory.
+
+I've reported these problems upstream. Easy enough to work around in git-annex's parser.
+"""]]

devblog
diff --git a/doc/devblog/day_233__direct_mode_proxy.mdwn b/doc/devblog/day_233__direct_mode_proxy.mdwn
new file mode 100644
index 0000000..21a2f2d
--- /dev/null
+++ b/doc/devblog/day_233__direct_mode_proxy.mdwn
@@ -0,0 +1,29 @@
+Ever since the direct mode guard was added a year ago, direct mode has been
+a lot safer to use, but very limited in the git commands that could be run
+in a direct mode repository.
+
+The worst limitation was that there was no way to `git revert` unwanted
+changes. But also, there was no way to check out different branches,
+or run commands like `git mv`.
+
+Today I made `git annex proxy`, which allows doing all of those things,
+and more. [documentation here](http://git-annex.branchable.com/direct_mode/#index5h2)
+
+It's so flexible that I'm not sure where the boundries lie yet, but it
+seems it will work for any git command that updates both the work tree and
+the index. Some git commands only update one or the other and not both and
+won't work with the proxy. As an advanced user tool, I think this is a
+great solution. I still want to make a simpler
+[[undo command|todo/direct_mode_undo]] that can nicely integrate into file
+managers.
+
+The implementation of `git annex proxy` is
+[quite simple](http://source.git-annex.branchable.com/?p=source.git;a=blob;f=Command/Proxy.h), because it
+reuses all the complicated work tree update code that was already written
+for `git annex merge`.
+
+----
+
+And here's the lede I buried: I've gotten two years of funding to work
+on git-annex part-time!
+[Details in my personal blog](http://joeyh.name/blog/entry/continuing_to_be_pleasantly_surprised/).

Added a comment
diff --git a/doc/forum/Recovering_deleted_file_in_direct_mode/comment_2_98c01a756c5f2dda28cffa5dd1dea385._comment b/doc/forum/Recovering_deleted_file_in_direct_mode/comment_2_98c01a756c5f2dda28cffa5dd1dea385._comment
new file mode 100644
index 0000000..007160a
--- /dev/null
+++ b/doc/forum/Recovering_deleted_file_in_direct_mode/comment_2_98c01a756c5f2dda28cffa5dd1dea385._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ subject="comment 2"
+ date="2014-11-12T21:00:41Z"
+ content="""
+A new `git annex proxy` command was just added that allows safely running commands like `git revert` in a direct mode repsitory.
+
+So, you might do:
+
+    rm myfile # oops!
+    git annex sync
+    git annex proxy -- git revert HEAD
+    git annex get myfile
+
+The sync is needed to commit the deletion, and then that commit gets reverted. Finally, you can use git-annex get to download the file from some other repository that still has a copy. (Assuming you didn't delete the last copy.)
+"""]]

add toc
diff --git a/doc/direct_mode.mdwn b/doc/direct_mode.mdwn
index 93e6b35..5de9b63 100644
--- a/doc/direct_mode.mdwn
+++ b/doc/direct_mode.mdwn
@@ -7,6 +7,10 @@ including modifying them. The disadvantage is that mant regular git
 commands cannot be used in a direct mode repository, since they don't
 understand how to update its working tree.
 
+[[!toc]]
+
+## enabling (and disabling) direct mode
+
 Normally, git-annex repositories start off in indirect mode. With some
 exceptions:
 
@@ -16,8 +20,6 @@ exceptions:
   into direct mode.
 * Windows always uses direct mode.
 
-## enabling (and disabling) direct mode
-
 Any repository can be converted to use direct mode at any time, and if you
 decide not to use it, you can convert back to indirect mode just as easily.
 Also, you can have one clone of a repository using direct mode, and another

proxy: for all your direct mode repository munging needs
This allows bypassing the direct mode guard in a safe way to do all sorts
of things including git revert, git mv, git checkout ...
This commit was sponsored by the WikiMedia Foundation.
diff --git a/Annex/Direct.hs b/Annex/Direct.hs
index 9489b74..e4015dd 100644
--- a/Annex/Direct.hs
+++ b/Annex/Direct.hs
@@ -225,9 +225,17 @@ mergeDirectCommit allowff old branch commitmode = do
   where
 	canff = maybe (return False) (\o -> inRepo $ Git.Branch.fastForwardable o branch) old
 
-{- Cleans up after a direct mode merge. The merge must have been staged
- - in the index. Uses diff-index to compare the staged changes with
- - the tree before the merge, and applies those changes to the work tree.
+mergeDirectCleanup :: FilePath -> Git.Ref -> Annex ()
+mergeDirectCleanup d oldref = do
+	updateWorkTree d oldref
+	liftIO $ removeDirectoryRecursive d
+
+{- Updates the direct mode work tree to reflect the changes staged in the
+ - index by a git command, that was run in a temporary work tree.
+ -
+ - Uses diff-index to compare the staged changes with provided ref
+ - which should be the tree before the merge, and applies those
+ - changes to the work tree.
  -
  - There are really only two types of changes: An old item can be deleted,
  - or a new item added. Two passes are made, first deleting and then
@@ -236,8 +244,8 @@ mergeDirectCommit allowff old branch commitmode = do
  - order, but we cannot add the directory until the file with the
  - same name is removed.)
  -}
-mergeDirectCleanup :: FilePath -> Git.Ref -> Annex ()
-mergeDirectCleanup d oldref = do
+updateWorkTree :: FilePath -> Git.Ref -> Annex ()
+updateWorkTree d oldref = do
 	(items, cleanup) <- inRepo $ DiffTree.diffIndex oldref
 	makeabs <- flip fromTopFilePath <$> gitRepo
 	let fsitems = zip (map (makeabs . DiffTree.file) items) items
@@ -246,7 +254,6 @@ mergeDirectCleanup d oldref = do
 	forM_ fsitems $
 		go makeabs DiffTree.dstsha DiffTree.dstmode movein movein_raw
 	void $ liftIO cleanup
-	liftIO $ removeDirectoryRecursive d
   where
 	go makeabs getsha getmode a araw (f, item)
 		| getsha item == nullSha = noop
diff --git a/CmdLine/GitAnnex.hs b/CmdLine/GitAnnex.hs
index 5f5d4a1..2fca855 100644
--- a/CmdLine/GitAnnex.hs
+++ b/CmdLine/GitAnnex.hs
@@ -83,6 +83,7 @@ import qualified Command.Direct
 import qualified Command.Indirect
 import qualified Command.Upgrade
 import qualified Command.Forget
+import qualified Command.Proxy
 import qualified Command.Version
 import qualified Command.Help
 #ifdef WITH_ASSISTANT
@@ -175,6 +176,7 @@ cmds = concat
 	, Command.Indirect.cmd
 	, Command.Upgrade.cmd
 	, Command.Forget.cmd
+	, Command.Proxy.cmd
 	, Command.Version.cmd
 	, Command.Help.cmd
 #ifdef WITH_ASSISTANT
diff --git a/Command/Proxy.hs b/Command/Proxy.hs
new file mode 100644
index 0000000..135a765
--- /dev/null
+++ b/Command/Proxy.hs
@@ -0,0 +1,48 @@
+{- git-annex command
+ -
+ - Copyright 2014 Joey Hess <joey@kitenet.net>
+ -
+ - Licensed under the GNU GPL version 3 or higher.
+ -}
+
+module Command.Proxy where
+
+import Common.Annex
+import Command
+import Config
+import Utility.Tmp
+import Utility.Env
+import Annex.Direct
+import qualified Git.Branch
+import qualified Git.Sha
+
+cmd :: [Command]
+cmd = [notBareRepo $
+	command "proxy" ("-- git command") seek
+		SectionCommon "safely bypass direct mode guard"]
+
+seek :: CommandSeek
+seek ("--":ps) = withWords start ps
+seek ps = withWords start ps
+
+start :: [String] -> CommandStart
+start [] = error "Did not specify command to run."
+start (c:ps) = liftIO . exitWith =<< ifM isDirect
+	( do
+		g <- gitRepo
+		withTmpDirIn (gitAnnexTmpMiscDir g) "proxy" go
+	, liftIO $ safeSystem c (map Param ps)
+	)
+  where
+	go tmp = do
+		oldref <- fromMaybe Git.Sha.emptyTree
+			<$> inRepo Git.Branch.currentSha
+		liftIO $ print oldref
+		exitcode <- liftIO $ proxy tmp
+		mergeDirectCleanup tmp oldref
+		return exitcode
+	proxy tmp = do
+		usetmp <- Just . addEntry "GIT_WORK_TREE" tmp  <$> getEnvironment
+		unlessM (boolSystemEnv "git" [Param "checkout", Param "--", Param "."] usetmp) $
+			error "Failed to set up proxy work tree."
+		safeSystemEnv c (map Param ps) usetmp
diff --git a/Git/Branch.hs b/Git/Branch.hs
index 0b7d888..1d5ffd3 100644
--- a/Git/Branch.hs
+++ b/Git/Branch.hs
@@ -43,6 +43,12 @@ currentUnsafe r = parse . firstLine
 		| null l = Nothing
 		| otherwise = Just $ Git.Ref l
 
+currentSha :: Repo -> IO (Maybe Git.Sha)
+currentSha r = go =<< current r
+  where
+	go Nothing = return Nothing
+	go (Just ref) = Git.Ref.sha ref r
+
 {- Checks if the second branch has any commits not present on the first
  - branch. -}
 changed :: Branch -> Branch -> Repo -> IO Bool
diff --git a/debian/changelog b/debian/changelog
index e6cbbce..bcf47e3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,9 @@ git-annex (5.20141126) UNRELEASED; urgency=medium
   * pre-commit: Block partial commit of unlocked annexed file, since
     that left a typechange staged in index due to some infelicity of git's
     handling of partial commits.
+  * proxy: New command for direct mode repositories, allows bypassing
+    the direct mode guard in a safe way to do all sorts of things
+    including git revert, git mv, git checkout ...
   * Debian package is now maintained by Gergely Nagy.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 10 Nov 2014 15:31:55 -0400
diff --git a/doc/direct_mode.mdwn b/doc/direct_mode.mdwn
index 749d3a6..93e6b35 100644
--- a/doc/direct_mode.mdwn
+++ b/doc/direct_mode.mdwn
@@ -3,8 +3,9 @@ git, and in turn point at the content of large files that is stored in
 `.git/annex/objects/`. Direct mode gets rid of the symlinks.
 
 The advantage of direct mode is that you can access files directly,
-including modifying them. The disadvantage is that most regular git
-commands cannot be used in a direct mode repository.
+including modifying them. The disadvantage is that mant regular git
+commands cannot be used in a direct mode repository, since they don't
+understand how to update its working tree.
 
 Normally, git-annex repositories start off in indirect mode. With some
 exceptions:
@@ -82,11 +83,29 @@ There are still lots of git commands you can use in direct mode. For
 example, you can run `git log` on files, run `git push`, `git fetch`,
 `git config`, `git remote add` etc.
 
+## proxing git commands in direct mode
+
+For those times when you really need to run a command like `git revert
+HEAD` in a direct mode repository, git-annex has the ability to proxy
+the command to work in direct mode.
+
+For example:
+
+	git annex proxy -- git revert HEAD
+
+	git annex proxy -- git checkout HEAD^^
+
+	git annex proxy -- git mv mydir newname
+
+This works by setting up a temporary work tree, letting the git
+command run on that work tree, and then updating the real work
+tree to reflect any changes staged or committed by the git command,
+with appropriate handling of the direct mode files.
+
 ## forcing git to use the work tree in direct mode
 
 This is for experts only. You can lose data doing this, or check enormous
 files directly into your git repository, and it's your fault if you do!
-Also, there should be no good reason to need to do this, ever.
 
 Ok, with the warnings out of the way, all you need to do to make any
 git command access the work tree in direct mode is pass it 
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index b22ff38..0e302b4 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn

(Diff truncated)
more design work
diff --git a/doc/todo/direct_mode_undo.mdwn b/doc/todo/direct_mode_undo.mdwn
index 505c753..82ea786 100644
--- a/doc/todo/direct_mode_undo.mdwn
+++ b/doc/todo/direct_mode_undo.mdwn
@@ -6,26 +6,36 @@ mode first, which can range from annoying to really annoying to impossible
 
 ## general approach
 
-`git annex foo $gitcmd` could:
+`git annex proxy $gitcmd` could:
 
 1. check out a local clone of the repo
-2. run "git $gitcmd" inside the cline
-3. merge any changes from the clone back into the direct mode repo
+2. run "git $gitcmd" inside the clone
+3. Merge any changes from the clone back into the direct mode repo
    and update the work tree the same as is done by `git annex merge`.
+4. If a different branch was checked out in the clone, update the repo
+   to have that same branch checked out.
 
 This is a general bypass for the direct mode guard. It should work anywhere
 (even on FAT). It avoids problems like `git commit -a` being unsafe in
 direct mode, since running such a command in a local clone, which does not
 use direct mode is always safe.
 
+Beyond handling undo, #4 means that this can be used to check 
+out past versions of the repo (eg, `git annex proxy checkout HEAD^^`)
+
 One problem with it is that it can only operate on changes that have been
 committed. If you've just accidentially deleted a file and want to undo
 that, and haven't run `git annex sync` to commit it, you can't revert it.
 
-Also, while this is general, I don't know if the generality is useful.
-What other changes, than revert, would it make sense to do with such a
-command? It could be used to check out some other branch, but step 3 above
-would merge that branch back into the direct mode repo.
+The need to make a local clone will make it a bit slow, since the whole
+work tree will need to be set up. It might be possible to reuse the clone
+next time (after resetting it to reflect the current HEAD).
+
+Some things like the reflog and local branches don't get cloned, so
+git commands that try to act on those wouldn't work. Maybe it would be
+better to make it use a separate work tree, but the same .git directory?
+Then step #3 would instead update the direct mode work tree to refect
+the new HEAD, and step #4 would not be needed.
 
 ## git annex undo
 

more design work
diff --git a/doc/todo/direct_mode_undo.mdwn b/doc/todo/direct_mode_undo.mdwn
index 969678d..505c753 100644
--- a/doc/todo/direct_mode_undo.mdwn
+++ b/doc/todo/direct_mode_undo.mdwn
@@ -61,16 +61,10 @@ it gets committed, and then that commit is reverted, resulting in another
 commit. Which a later run of undo can in turn revert. If it didn't commit,
 the history about the staged change that was reverted would be lost.
 
-What about undoing changes to a whole directory? It first would
-need to look through the git history to find every file under that
-directory. And then it would behave as if it were passed all those
-files. This would be useful for reverting `rm -rf`. But it could be very
-expensive. And it could lead to surprising results, like undoing a lot
-of unrelated changes when running on a bunch of files in a directory
-that were changed at different times.
-
-Maybe instead of letting a directory be passed, make undo with no
-parameters revert all changes made in the most recent commit.
+What about undoing changes to a whole directory? Recursively undoing
+the last change to each file would be expensive, and likely confusing.
+Instead, when a directory is passed, it could find the most recent commit
+that touched files in that directory, and undo the changes to those files.
 
 Also, --depth could make undo look for an older commit than the most
 recent one to affect the specified file.

diff --git a/doc/bugs/Unclear_output_during_git-annex_copy.mdwn b/doc/bugs/Unclear_output_during_git-annex_copy.mdwn
new file mode 100644
index 0000000..72485d1
--- /dev/null
+++ b/doc/bugs/Unclear_output_during_git-annex_copy.mdwn
@@ -0,0 +1,15 @@
+I noticed the following output during a `git-annex sync --content` run
+which I found a little disconcerting:
+
+	copy file.idx copy file.idx (gpg) (checking s3...) (to s3...) 
+	ok
+	copy file.pack copy file.pack (checking s3...) (to s3...) 
+	ok
+	(Recording state in git...)
+
+It's confusing that seemingly only the first file got encrypted (gpg).
+
+Fortunately, it appears that actually all files were encrypted (only GPGHMAC file names in remote location),
+so this is hopefully just a cosmetic issue.
+
+git-annex version: 5.20141024-g613f396

diff --git a/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path.mdwn b/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path.mdwn
new file mode 100644
index 0000000..aa03c30
--- /dev/null
+++ b/doc/bugs/local_pair_fails_if_non-ascii_characters_present_on_annex_path.mdwn
@@ -0,0 +1,16 @@
+### Please describe the problem.
+
+When the annex directory has a non-ascii character (like a tilde) on its path, local pairing fails and a couple of instances of the following message appear on the log
+
+"illegal control characters in pairing message; ignoring"
+
+### What steps will reproduce the problem?
+
+* make a new annex repo named on /home/someone/Vídeos/blah/ (notice the i with a tilde) on two computers
+* try to pair them
+
+### What version of git-annex are you using? On what operating system?
+
+git-annex version: 5.20141016-g26b38fd on Arch Linux
+
+git-annex version: 5.20140717 on Ubuntu 14.10

Added a comment
diff --git a/doc/todo/Slow_transfer_for_a_lot_of_small_files./comment_1_fa76bc744e30aaeed4a3b3e2fe3dd75e._comment b/doc/todo/Slow_transfer_for_a_lot_of_small_files./comment_1_fa76bc744e30aaeed4a3b3e2fe3dd75e._comment
new file mode 100644
index 0000000..c877f93
--- /dev/null
+++ b/doc/todo/Slow_transfer_for_a_lot_of_small_files./comment_1_fa76bc744e30aaeed4a3b3e2fe3dd75e._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnKT33H9qVVGJOybP00Zq2NZmNAyB65mic"
+ nickname="Lucas"
+ subject="comment 1"
+ date="2014-11-12T07:58:07Z"
+ content="""
+Opening multiple connections to a host can be preferable sometimes and it's unlikely to be an issue at all for the larger remotes like Google, Microsoft or S3.
+
+For example, the OneDrive provider spends a lot of time sitting around waiting for initialisation between uploads. Using, say 5 threads instead of 1 would allow it to continue doing things while it waits.
+
+Multiple connections can also vastly improve upload speeds for users with congested home internet connections.
+"""]]

diff --git a/doc/bugs/Photos___34__disappear__34___after_adding_a_remote_server_repository_on_Android.mdwn b/doc/bugs/Photos___34__disappear__34___after_adding_a_remote_server_repository_on_Android.mdwn
new file mode 100644
index 0000000..4509ff8
--- /dev/null
+++ b/doc/bugs/Photos___34__disappear__34___after_adding_a_remote_server_repository_on_Android.mdwn
@@ -0,0 +1,22 @@
+### Please describe the problem.
+
+I have a very simple use case for Git Annex on Android : I want my photos to be transferred to my home server automatically, in a special "incoming photos" folder, where they eventually get classified into other folders or deleted. git-annex in installed on this server.
+
+However, adding a Remote server (ssh) repository on a Photos repository on Android results in a totally confusing situation where the files on the Android device are removed and transferred to a bare repository on the server. Getting out of this sticky situation requires some commandline-fu.
+
+### What steps will reproduce the problem?
+
+1. Install git-annex on Android
+2. Open git-annex from the apps menu
+3. Accept offer to create a Photos repository
+4. Add a "Remote server" server repository
+5. Wait a bit.
+6. "Uh oh."
+
+### What version of git-annex are you using? On what operating system?
+
+Using git-annex Android and Debian.
+
+### Please provide any additional information below.
+
+I thought that adding a remote server repository would result in two non-bare repositories, such as what the Local pairing mode achieves. However Local pairing is not available on Android. I assumed the remote server would function in the same manner, except that I entered the SSH connection information manually.

close
diff --git a/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn
index f327d7e..65671a2 100644
--- a/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn
+++ b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn
@@ -21,3 +21,5 @@ Shouldn't this be done automatically?
 ### Please provide any additional information below.
 
 Thanks! -- [[anarcat]]
+
+> [[done]]; apparently some pebak. --[[Joey]]

Added a comment
diff --git a/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_2_22f456996079c88865b67caca51dfed9._comment b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_2_22f456996079c88865b67caca51dfed9._comment
new file mode 100644
index 0000000..f155a33
--- /dev/null
+++ b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_2_22f456996079c88865b67caca51dfed9._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="anarcat"
+ subject="comment 2"
+ date="2014-11-11T21:16:02Z"
+ content="""
+huh! weird. i just made up those \"steps to reproduce\" from memory, as I cloned the repo a while ago. maybe i just forgot to sync it?
+
+sorry for the noise.
+"""]]

devblog
diff --git a/doc/devblog/day_232__OSX_Yosemite.mdwn b/doc/devblog/day_232__OSX_Yosemite.mdwn
new file mode 100644
index 0000000..c8521fb
--- /dev/null
+++ b/doc/devblog/day_232__OSX_Yosemite.mdwn
@@ -0,0 +1,6 @@
+The OSX autobuilder has been updated to OSX 10.10 Yosemite. The 
+[resulting build](https://downloads.kitenet.net/git-annex/OSX/current/10.10_Yosemite/git-annex.dmg)
+might also work on 10.9 Mavericks too, and I'd appreciate help testing that.
+
+Went ahead and fixed the [[partial commit problem|bugs/modified_permissions_persist_after_unlock__44___commit]]
+by making the pre-commit hook detect and block problimatic partial commits.

OSX autobuilder updated to 10.10
diff --git a/Build/DistributionUpdate.hs b/Build/DistributionUpdate.hs
index 3899f08..e2ce485 100644
--- a/Build/DistributionUpdate.hs
+++ b/Build/DistributionUpdate.hs
@@ -33,7 +33,7 @@ autobuilds :: [(URLString, FilePath)]
 autobuilds = 
 	(map linuxarch ["i386", "amd64", "armel"]) ++
 	(map androidversion ["4.0", "4.3"]) ++
-	[ (autobuild "x86_64-apple-mavericks/git-annex.dmg", "git-annex/OSX/current/10.9_Mavericks/git-annex.dmg")
+	[ (autobuild "x86_64-apple-yosemite/git-annex.dmg", "git-annex/OSX/current/10.10_Yosemite/git-annex.dmg")
 	, (autobuild "windows/git-annex-installer.exe", "git-annex/windows/current/git-annex-installer.exe")
 	]
   where
diff --git a/doc/install/OSX.mdwn b/doc/install/OSX.mdwn
index 0eab6eb..b630c1e 100644
--- a/doc/install/OSX.mdwn
+++ b/doc/install/OSX.mdwn
@@ -3,7 +3,7 @@
 [[!img /assistant/osx-app.png align=right link=/assistant]]
 For easy installation, use the prebuilt app bundle.
 
-* 10.9 Mavericks: [git-annex.dmg](https://downloads.kitenet.net/git-annex/OSX/current/10.9_Mavericks/git-annex.dmg)
+* 10.10 Yosemite: [git-annex.dmg](https://downloads.kitenet.net/git-annex/OSX/current/10.10_Yosemite/git-annex.dmg)
 * 10.8.2 Mountain Lion: [git-annex.dmg.bz2](https://downloads.kitenet.net/git-annex/OSX/current/10.8.2_Mountain_Lion/git-annex.dmg.bz2) **warning: not being updated any longer**
 * 10.7.5 Lion: [git-annex.dmg](https://downloads.kitenet.net/git-annex/OSX/current/10.7.5_Lion/git-annex.dmg) **warning: not being updated any longer**
 
@@ -20,10 +20,10 @@ several more. Handy if you don't otherwise have git installed.
 
 ## autobuilds
 
-[[Joey]] autobuilds the app for Mavericks, thanks to Kevin McKenzie
+[[Joey]] autobuilds the app for 10.10 Yosemite, thanks to Kevin McKenzie
 for hosting the autobuilder.
 
-* [autobuild of git-annex.dmg](https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-mavericks/git-annex.dmg) ([build logs](https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-mavericks/))
+* [autobuild of git-annex.dmg](https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/git-annex.dmg) ([build logs](https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/))
 
 ## using Homebrew
 

diff --git a/doc/forum/Shared_Encryption_does_not_Work_as_Expected.mdwn b/doc/forum/Shared_Encryption_does_not_Work_as_Expected.mdwn
new file mode 100644
index 0000000..660006a
--- /dev/null
+++ b/doc/forum/Shared_Encryption_does_not_Work_as_Expected.mdwn
@@ -0,0 +1,11 @@
+I recently started to set up a share that would be synced between multiple machines.  Since I control all of them I thought it might be cool to try using the suggested "shared encryption".  This seems to have been a mistake.
+
+My project folder is now a big mess of symlinks to read-only files.  
+
+I can fix this with a "cp -RH" and get my data back and I can muddle through fixing the permissions but this leads me to two conclusions:
+
+1.  I did something wrong but I don't know what.  Should I have created the ssh remote first and the local repo second?  
+
+2.  This feature should either be hidden or the UI should be much more explicit about how to use it properly.  This cost me quite a bit of time and frustration.
+
+I really like git-annex so I would appreciate any comments or suggestions.

Added a comment: Confirmation
diff --git a/doc/bugs/Permission_problem_in_second_user_account_on_Android/comment_2_ef775b5fceb4caf00227978318f73470._comment b/doc/bugs/Permission_problem_in_second_user_account_on_Android/comment_2_ef775b5fceb4caf00227978318f73470._comment
new file mode 100644
index 0000000..761bca6
--- /dev/null
+++ b/doc/bugs/Permission_problem_in_second_user_account_on_Android/comment_2_ef775b5fceb4caf00227978318f73470._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://inkwell.za.net/"
+ nickname="kwill"
+ subject="Confirmation"
+ date="2014-11-11T08:01:48Z"
+ content="""
+I can confirm this occurs for me on Android 4.4 with exactly the same symptoms: primary user account can install and run Git Annex (triggers repo setup, webapp opens), secondary user account can install, but gets this error when starting Git Annex (webapp does not open). Is there any additional info I can provide to resolve this?
+"""]]

Added a comment
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_2_d4ff043ebca6028105d6e38ee4020e7c._comment b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_2_d4ff043ebca6028105d6e38ee4020e7c._comment
new file mode 100644
index 0000000..9636edd
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_2_d4ff043ebca6028105d6e38ee4020e7c._comment
@@ -0,0 +1,539 @@
+[[!comment format=mdwn
+ username="https://renaud.casenave.fr/"
+ subject="comment 2"
+ date="2014-11-11T04:35:57Z"
+ content="""
+Hi,
+
+Here it is:
+
+    % lsof -v
+    lsof version information:
+        revision: 4.88
+        latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
+        latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
+        latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
+        constructed: Wed Oct 29 13:53:05 PDT 2014
+        constructed by and on: builduser@anatol
+        compiler: cc
+        compiler version: 4.9.1 20140903 (prerelease) (GCC)
+        compiler flags: -DLINUXV=316002 -DGLIBCV=220 -DHASIPv6 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAS_STRFTIME -DLSOF_VSTR=\"3.16.2\" -O
+        loader flags: -L./lib -llsof
+        system info: Linux anatol 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux
+        Only root can list all files.
+        /dev warnings are disabled.
+        Kernel ID check is disabled.
+
+    % lsof -F0can +d ~
+    p476csh
+    fcwda n/home/raz
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    f255arn/home/raz/.xsession
+    p483cdbus-launch
+    f8arnpipe
+    p486cuim-xim
+    fcwda n/home/raz
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    f6arnpipe
+    f9awnpipe
+    f11arnpipe
+    f14awnpipe
+    p487cuim-toolbar-gtk
+    fcwda n/home/raz
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    p488cclfswm
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    p490cuim-helper-serv
+    fcwda n/home/raz
+    f2awn/home/raz/.xsession-errors
+    p491csbcl
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    f10awnpipe
+    f11arnpipe
+    f12awnpipe
+    f13arnpipe
+    f14awnpipe
+    f15arnpipe
+    f16awnpipe
+    f17arnpipe
+    f18awnpipe
+    f19arnpipe
+    f20awnpipe
+    f21arnpipe
+    p492cmozc_server
+    fcwda n/home/raz
+    f1awn/home/raz/.xsession-errors
+    f2awn/home/raz/.xsession-errors
+    f6arnpipe
+    f9awnpipe
+    p580cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f13awnpipe
+    f15arnpipe
+    f18awnpipe
+    f19arnpipe
+    f22awnpipe
+    f23arnpipe
+    f25awnpipe
+    f26arnpipe
+    p591cgit
+    f0arnpipe
+    f1awnpipe
+    p621cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f15awnpipe
+    f16arnpipe
+    f18awnpipe
+    f19arnpipe
+    f23awnpipe
+    f24arnpipe
+    f25awnpipe
+    f26arnpipe
+    p649cgit
+    f0arnpipe
+    f1awnpipe
+    p656cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f11arnpipe
+    f12awnpipe
+    f16awnpipe
+    f18arnpipe
+    f19awnpipe
+    f20arnpipe
+    f21arnpipe
+    p673cssh
+    f0arnpipe
+    f1awnpipe
+    f2awnpipe
+    p703cgit
+    f0arnpipe
+    f1awnpipe
+    p719cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f13awnpipe
+    f15arnpipe
+    f18awnpipe
+    f19arnpipe
+    f20awnpipe
+    f22arnpipe
+    f24awnpipe
+    f25arnpipe
+    p743cgit
+    f0arnpipe
+    f1awnpipe
+    p745cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f11arnpipe
+    f12awnpipe
+    f18awnpipe
+    f19arnpipe
+    f20awnpipe
+    f21arnpipe
+    f22arnpipe
+    p762cssh
+    f0arnpipe
+    f1awnpipe
+    f2awnpipe
+    p804cgit
+    f0arnpipe
+    f1awnpipe
+    p836cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f15awnpipe
+    f16arnpipe
+    f18awnpipe
+    f19arnpipe
+    f22awnpipe
+    f23arnpipe
+    f25awnpipe
+    f26arnpipe
+    p858cgit
+    f0arnpipe
+    f1awnpipe
+    p865cssh
+    f2awnpipe
+    f6arnpipe
+    f7awnpipe
+    f8awnpipe
+    p868cssh
+    f2awnpipe
+    f6arnpipe
+    f7awnpipe
+    f8awnpipe
+    p878cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f13awnpipe
+    f15arnpipe
+    f18awnpipe
+    f19arnpipe
+    f20awnpipe
+    f22arnpipe
+    f24awnpipe
+    f25arnpipe
+    p901cgit
+    f0arnpipe
+    f1awnpipe
+    p914cld-linux-x86-64
+    f4arnpipe
+    f5awnpipe
+    f13awnpipe
+    f15arnpipe
+    f18awnpipe
+    f19arnpipe

(Diff truncated)
pre-commit: Block partial commit of unlocked annexed file, since that left a typechange staged in index
I had hoped that the git devs could change git's handling of partial
commits to not use a false index file, but seems not.
So, this relies on some git internals to detect that case. The test suite
has a test case added to catch it if changes to git break it.
This commit was sponsored by Paul Tagliamonte.
diff --git a/CmdLine/Seek.hs b/CmdLine/Seek.hs
index 238ed42..9a87480 100644
--- a/CmdLine/Seek.hs
+++ b/CmdLine/Seek.hs
@@ -107,9 +107,11 @@ withFilesUnlocked' :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> (F
 withFilesUnlocked' typechanged a params = seekActions $
 	prepFiltered a unlockedfiles
   where
-	check f = liftIO (notSymlink f) <&&> 
-		(isJust <$> catKeyFile f <||> isJust <$> catKeyFileHEAD f)
-	unlockedfiles = filterM check =<< seekHelper typechanged params
+	unlockedfiles = filterM isUnlocked =<< seekHelper typechanged params
+
+isUnlocked :: FilePath -> Annex Bool
+isUnlocked f = liftIO (notSymlink f) <&&> 
+	(isJust <$> catKeyFile f <||> isJust <$> catKeyFileHEAD f)
 
 {- Finds files that may be modified. -}
 withFilesMaybeModified :: (FilePath -> CommandStart) -> CommandSeek
diff --git a/Command/PreCommit.hs b/Command/PreCommit.hs
index aaaa51f..91a9720 100644
--- a/Command/PreCommit.hs
+++ b/Command/PreCommit.hs
@@ -23,6 +23,8 @@ import Logs.View
 import Logs.MetaData
 import Types.View
 import Types.MetaData
+import qualified Git.Index as Git
+import qualified Git.LsFiles as Git
 
 import qualified Data.Set as S
 
@@ -37,10 +39,18 @@ seek ps = lockPreCommitHook $ ifM isDirect
 		withWords startDirect ps
 		runAnnexHook preCommitAnnexHook
 	, do
-		-- fix symlinks to files being committed
-		withFilesToBeCommitted (whenAnnexed Command.Fix.start) ps
-		-- inject unlocked files into the annex
-		withFilesUnlockedToBeCommitted startIndirect ps
+		ifM (liftIO Git.haveFalseIndex)
+			( do
+				(fs, cleanup) <- inRepo $ Git.typeChangedStaged ps
+				whenM (anyM isUnlocked fs) $
+					error "Cannot make a partial commit with unlocked annexed files. You should `git annex add` the files you want to commit, and then run git commit."
+				void $ liftIO cleanup
+			, do
+				-- fix symlinks to files being committed
+				withFilesToBeCommitted (whenAnnexed Command.Fix.start) ps
+				-- inject unlocked files into the annex
+				withFilesUnlockedToBeCommitted startIndirect ps
+			)
 		runAnnexHook preCommitAnnexHook
 		-- committing changes to a view updates metadata
 		mv <- currentView
diff --git a/Git/Index.hs b/Git/Index.hs
index c42ac42..1f9d1c8 100644
--- a/Git/Index.hs
+++ b/Git/Index.hs
@@ -11,6 +11,9 @@ import Common
 import Git
 import Utility.Env
 
+indexEnv :: String
+indexEnv = "GIT_INDEX_FILE"
+
 {- Forces git to use the specified index file.
  -
  - Returns an action that will reset back to the default
@@ -25,7 +28,7 @@ override index = do
 	return $ reset res
   where
 	var = "GIT_INDEX_FILE"
-	reset (Just v) = setEnv var v True
+	reset (Just v) = setEnv indexEnv v True
 	reset _ = unsetEnv var
 
 indexFile :: Repo -> FilePath
@@ -34,3 +37,19 @@ indexFile r = localGitDir r </> "index"
 {- Git locks the index by creating this file. -}
 indexFileLock :: Repo -> FilePath
 indexFileLock r = indexFile r ++ ".lock"
+
+{- When the pre-commit hook is run, and git commit has been run with
+ - a file or files specified to commit, rather than committing the staged
+ - index, git provides the pre-commit hook with a "false index file".
+ -
+ - Changes made to this index will influence the commit, but won't
+ - affect the real index file.
+ -
+ - This detects when we're in this situation, using a heiristic, which
+ - might be broken by changes to git. Any use of this should have a test
+ - case to make sure it works.
+ -}
+haveFalseIndex :: IO Bool
+haveFalseIndex = maybe (False) check <$> getEnv indexEnv
+  where
+	check f = "next-index" `isPrefixOf` takeFileName f
diff --git a/Test.hs b/Test.hs
index a0c56a3..dd7a45f 100644
--- a/Test.hs
+++ b/Test.hs
@@ -194,6 +194,7 @@ unitTests note gettestenv = testGroup ("Unit Tests " ++ note)
 	, check "lock" test_lock
 	, check "edit (no pre-commit)" test_edit
 	, check "edit (pre-commit)" test_edit_precommit
+	, check "partial commit" test_partial_commit
 	, check "fix" test_fix
 	, check "trust" test_trust
 	, check "fsck (basics)" test_fsck_basic
@@ -502,6 +503,14 @@ test_edit' precommit testenv = intmpclonerepoInDirect testenv $ do
 	assertEqual "content of modified file" c (changedcontent annexedfile)
 	not <$> git_annex testenv "drop" [annexedfile] @? "drop wrongly succeeded with no known copy of modified file"
 
+test_partial_commit :: TestEnv -> Assertion
+test_partial_commit testenv = intmpclonerepoInDirect testenv $ do
+	git_annex testenv "get" [annexedfile] @? "get of file failed"
+	annexed_present annexedfile
+	git_annex testenv "unlock" [annexedfile] @? "unlock failed"
+	not <$> boolSystem "git" [Params "commit -q -m test", File annexedfile]
+		@? "partial commit of unlocked file not blocked by pre-commit hook"
+
 test_fix :: TestEnv -> Assertion
 test_fix testenv = intmpclonerepoInDirect testenv $ do
 	annexed_notpresent annexedfile
diff --git a/debian/changelog b/debian/changelog
index 3e0591b..409d843 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+git-annex (5.20141126) UNRELEASED; urgency=medium
+
+  * pre-commit: Block partial commit of unlocked annexed file, since
+    that left a typechange staged in index due to some infelicity of git's
+    handling of partial commits.
+
+ -- Joey Hess <joeyh@debian.org>  Mon, 10 Nov 2014 15:31:55 -0400
+
 git-annex (5.20141125) unstable; urgency=medium
 
   * Remove fixup code for bad bare repositories created by
diff --git a/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn b/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn
index 493443d..907ae99 100644
--- a/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn
+++ b/doc/bugs/modified_permissions_persist_after_unlock__44___commit.mdwn
@@ -38,3 +38,6 @@ git version 1.7.9.5
 
 [[!tag confirmed]]
 [[!meta title="git commit of unlocked file leaves typechange staged in index"]]
+
+> [[fixed|done]]; git-annex pre-commit will block such commits from being
+> made. Git devs didn't seem to have a way to improve its behavior. --[[Joey]]

Added a comment
diff --git a/doc/forum/possible_gpg_issue/comment_2_e5ea7fc9be496f71516a238522193744._comment b/doc/forum/possible_gpg_issue/comment_2_e5ea7fc9be496f71516a238522193744._comment
new file mode 100644
index 0000000..ffc6903
--- /dev/null
+++ b/doc/forum/possible_gpg_issue/comment_2_e5ea7fc9be496f71516a238522193744._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawknHkJJRE0K7_G4sG3YgOkAaihnw0eg9Ao"
+ nickname="Chad"
+ subject="comment 2"
+ date="2014-11-10T18:06:11Z"
+ content="""
+Yes, the drive is mounted rw for all users with no username or password required to connect. There is no problem copying from the drive, and no problem reading or writing to it outside of git-annex.
+"""]]

comment
diff --git a/doc/todo/git_annex_open/comment_1_67d90a1cb104d98e816354d96e1b0306._comment b/doc/todo/git_annex_open/comment_1_67d90a1cb104d98e816354d96e1b0306._comment
new file mode 100644
index 0000000..e1b442d
--- /dev/null
+++ b/doc/todo/git_annex_open/comment_1_67d90a1cb104d98e816354d96e1b0306._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-11-10T17:11:52Z"
+ content="""
+Hmm, well, there have been requests for access to files as they're being
+get-ed before. This does have the advantage of providing that,
+but I don't know if I like trying in xdg-open, which might not always
+be the way a user wants to open a file.
+
+git-annex does have progress info available while a file is being
+transferred. (If nothing else, it tends to know the key size, and can
+see the file size.) However I don't know how it could tell if "enough"
+of the file was available to stream it.
+
+I guess what I'd be most comfortable with is putting in plumbing.
+Like making `examinekey` be able to report the temporary file
+that is used when a key is being downloaded. It might also make sense to
+have a bit of plumbing that waits for a file being downloaded to get
+to X% complete, or something.
+"""]]

followup
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_1_e159e00e2ec7c128fda2190dc7d4c5ea._comment b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_1_e159e00e2ec7c128fda2190dc7d4c5ea._comment
new file mode 100644
index 0000000..915180a
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88/comment_1_e159e00e2ec7c128fda2190dc7d4c5ea._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-11-10T17:07:17Z"
+ content="""
+Could you get me a sample of lsof output from this version?
+git-annex runs lsof with the options `-F0can` which is supposed to
+produce a machine-parsable output.
+
+A full command line would be something like: `lsof -F0can +d ~`
+"""]]

works for me
diff --git a/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_1_fb324a4b1ec440275eca32dae15155b3._comment b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_1_fb324a4b1ec440275eca32dae15155b3._comment
new file mode 100644
index 0000000..e0575df
--- /dev/null
+++ b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net/comment_1_fb324a4b1ec440275eca32dae15155b3._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""works for me"""
+ date="2014-11-10T17:05:26Z"
+ content="""
+<pre>
+joey@kite:~/tmp>git clone http://downloads.kitenet.net/.git/ dlCloning into 'dl'...
+Checking connectivity... done.
+joey@kite:~/tmp>cd dl
+joey@kite:~/tmp/dl>git annex get git-annex/linux/
+get git-annex/linux/current/git-annex-standalone-amd64.tar.gz (merging origin/git-annex origin/synced/git-annex into git-annex...)
+(Recording state in git...)
+(from origin...) --2014-11-10 13:04:38--  http://downloads.kitenet.net/.git//annex/objects/3V/g7/SHA256E-s46132091--9712ed0168c2562d504d71cb3efbcac5434acc2f604cabadc42728758b7b3bc6.tar.gz/SHA256E-s46132091--9712ed0168c2562d504d71cb3efbcac5434acc2f604cabadc42728758b7b3bc6.tar.gz
+Resolving downloads.kitenet.net (downloads.kitenet.net)... 107.170.31.195
+Connecting to downloads.kitenet.net (downloads.kitenet.net)|107.170.31.195|:80... connected.
+</pre>
+
+AFAICS, you can't clone http://downloads.kitenet.net/ without the .git/,
+so this makes me think you did something wrong.
+"""]]

diff --git a/doc/todo/git_annex_open.mdwn b/doc/todo/git_annex_open.mdwn
new file mode 100644
index 0000000..8cb32bd
--- /dev/null
+++ b/doc/todo/git_annex_open.mdwn
@@ -0,0 +1,9 @@
+I had an idea the other night that there could be a `git annex open` command. What this would do would be the following:
+
+* if the file is already present locally: just `xdg-open` it
+* if it is not present and cannot be streamed: `git annex get "$@" && xdg-open "$@"`
+* if it can be streamed: `git annex get "$@"` and `xdg-open` when enough content has been streamed that we are confident it will play completely (unless network conditions change)
+
+This would need some [[metadata]] support partly to guess if the file can be streamed, but also to find the content. It would also assume some more intelligence in `git annex get` where git annex would have progress information (maybe through [[chunking]]?).
+
+How does that idea sound? --[[anarcat]]

Added a comment: is your samba share mounted?
diff --git a/doc/forum/possible_gpg_issue/comment_1_c5a33ff375cddd001e6cb7be8d0ce940._comment b/doc/forum/possible_gpg_issue/comment_1_c5a33ff375cddd001e6cb7be8d0ce940._comment
new file mode 100644
index 0000000..9c43e38
--- /dev/null
+++ b/doc/forum/possible_gpg_issue/comment_1_c5a33ff375cddd001e6cb7be8d0ce940._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://openid.stackexchange.com/user/e65e6d0e-58ba-41de-84cc-1f2ba54cf574"
+ nickname="Mica Semrick"
+ subject="is your samba share mounted?"
+ date="2014-11-10T05:08:39Z"
+ content="""
+You should make sure your samba share is mounted and you can read/write to it.
+"""]]

slight annoyance
diff --git a/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn
new file mode 100644
index 0000000..f327d7e
--- /dev/null
+++ b/doc/bugs/main_repo_not_available_on_downloads.kitenet.net.mdwn
@@ -0,0 +1,23 @@
+### Please describe the problem.
+
+The [downloads.kitenet.net](http://downloads.kitenet.net/) site is really a git annex repository, yet it is not possible to "git annex get" the files from there.
+
+I regularly have to do something like this to workaround that issue:
+
+    git annex addurl --file git-annex-standalone-amd64.tar.gz https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
+
+Shouldn't this be done automatically?
+
+### What steps will reproduce the problem?
+
+    git clone https://downloads.kitenet.net/
+    cd downloads.kitenet.net/
+    git annex get git-annex/linux/
+
+### What version of git-annex are you using? On what operating system?
+
+5.20141024 on Debian Jessie.
+
+### Please provide any additional information below.
+
+Thanks! -- [[anarcat]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment b/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment
deleted file mode 100644
index 8be3416..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 18"
- date="2014-11-09T22:57:08Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment b/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment
deleted file mode 100644
index 3ed95e5..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 21"
- date="2014-11-09T22:57:35Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment b/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment
deleted file mode 100644
index 9013d77..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 15"
- date="2014-11-09T22:56:41Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment b/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment
deleted file mode 100644
index f920f45..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="Still happening here"
- date="2014-11-09T22:57:26Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment b/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment
deleted file mode 100644
index 1bd7ae8..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 22"
- date="2014-11-09T22:57:44Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment b/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment
deleted file mode 100644
index de79dbc..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 19"
- date="2014-11-09T22:57:17Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment b/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment
deleted file mode 100644
index 8628b1c..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 17"
- date="2014-11-09T22:56:59Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment b/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment
deleted file mode 100644
index f4477a0..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 16"
- date="2014-11-09T22:56:50Z"
- content="""
-I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
-
-I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
-"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment b/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment
new file mode 100644
index 0000000..1bd7ae8
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_22_79067b2ddcedb3104db0d59f314392c1._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 22"
+ date="2014-11-09T22:57:44Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment b/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment
new file mode 100644
index 0000000..3ed95e5
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_21_9126251bd0c992c7d57563c633989e02._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 21"
+ date="2014-11-09T22:57:35Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment: Still happening here
diff --git a/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment b/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment
new file mode 100644
index 0000000..f920f45
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_20_c627ddbf9742428353000319b9303eac._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="Still happening here"
+ date="2014-11-09T22:57:26Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment b/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment
new file mode 100644
index 0000000..de79dbc
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_19_6fc69dbf61a89db07c52947db26d96ba._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 19"
+ date="2014-11-09T22:57:17Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment b/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment
new file mode 100644
index 0000000..8be3416
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_18_601b72a83c80e0623e600f07469c9483._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 18"
+ date="2014-11-09T22:57:08Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment b/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment
new file mode 100644
index 0000000..8628b1c
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_17_f1271cb8947d730c7624d6a49f3d5ed4._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 17"
+ date="2014-11-09T22:56:59Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment b/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment
new file mode 100644
index 0000000..f4477a0
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_16_0977698fe6994772b2d58541e5697f94._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 16"
+ date="2014-11-09T22:56:50Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment b/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment
new file mode 100644
index 0000000..9013d77
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_15_9d02e4ebf645ce135f00884e654b56c0._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 15"
+ date="2014-11-09T22:56:41Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

Added a comment
diff --git a/doc/bugs/Assistant_merge_loop/comment_14_89947f4af19ceae36fbe0a69aa10df25._comment b/doc/bugs/Assistant_merge_loop/comment_14_89947f4af19ceae36fbe0a69aa10df25._comment
new file mode 100644
index 0000000..fb95257
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_14_89947f4af19ceae36fbe0a69aa10df25._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 14"
+ date="2014-11-09T22:56:31Z"
+ content="""
+I have 3 computers syncing through a private github repo (with annex-ignore = true) and a box account for transferring files. The computers are up to date debian:testing:amd64, debian:testing:i386 and debian:sid:amd64.
+
+I'm getting lots of empty commits with the text \"merge refs/remotes/github/synced/master\". I would really like to help in debugging this issue if possible.
+"""]]

removed
diff --git a/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment b/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment
deleted file mode 100644
index c6cc340..0000000
--- a/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment
+++ /dev/null
@@ -1,234 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
- nickname="Jon Ander"
- subject="comment 13"
- date="2014-07-26T14:57:53Z"
- content="""
-The empty merge commits are a lot less common lately, but still happen.
-
-I post a log of today's merges. I have empty merge commit at 11:44:02, 11:44:03 and 11:54:34.
-
-
-[2014-07-26 11:41:35 CEST] main: starting assistant version 5.20140717
-[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:41:36 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
-[2014-07-26 11:41:36 CEST] Cronner: You should enable consistency checking to protect your data. 
-[2014-07-26 11:43:46 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-files\",\"--stage\",\"-z\",\"--\",\"/home/jonan/Sync\"]
-[2014-07-26 11:43:49 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-files\",\"--stage\",\"-z\",\"--\",\"/home/jonan/Sync\"]
-[2014-07-26 11:43:56 CEST] chat: nice [\"ionice\",\"-c3\",\"git-annex\",\"remotedaemon\"]
-[2014-07-26 11:43:56 CEST] read: git [\"config\",\"--null\",\"--list\"]
-[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
-[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@gitlab.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@gitlab.com\",\"git-annex-shell 'notifychanges' '/~/jonan/annex-sync.git'\"]
-[2014-07-26 11:43:56 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
-[2014-07-26 11:43:56 CEST] TransferScanner: Syncing with gitlab, github 
-[2014-07-26 11:43:57 CEST] MountWatcher: Using running DBUS service org.kde.DeviceNotifications to monitor mount events.
-[2014-07-26 11:43:57 CEST] NetWatcher: Using running DBUS service org.freedesktop.NetworkManager to monitor network connection events.
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:57 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"gitlab\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec25486238253.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:57 CEST] RemoteControl: DISCONNECTED ssh://git@gitlab.com/~/jonan/annex-sync.git
-[2014-07-26 11:43:57 CEST] RemoteControl: fromList []
-(scanning...) [2014-07-26 11:43:58 CEST] Watcher: Performing startup scan
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
-Invalid command: 'git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git''
-  You appear to be using ssh to clone a git:// URL.
-  Make sure your core.gitProxy config option and the
-  GIT_PROXY_COMMA[2014-07-26 11:43:58 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:43:58 CEST] RemoteControl: fromList []
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec2548437158.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec25486248131.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] TransferWatcher: watching for transfers
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/heads/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:43:58 CEST] Merger: watching /home/jonan/Sync/.git/refs
-[2014-07-26 11:43:59 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shel[2014-07-26 11:43:59 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:43:59 CEST] RemoteControl: fromList []
-[2014-07-26 11:44:00 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"github\"]
-[2014-07-26 11:44:01 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges' '/~[2014-07-26 11:44:01 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:44:01 CEST] RemoteControl: fromList []
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/gitlab/annex/direct/master\"]
-[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/gitlab/synced/master\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/gitlab/synced/master\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"72953c0d32d121b75dde10570aa25632641f2a54\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
-[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
-[2014-07-26 11:44:02 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/gitlab/synced/master\"]
-[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"073a007b04d28be9439ba847429c53681152af53\"]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/annex/direct/master\"]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"073a007b04d28be9439ba847429c53681152af53\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
-[2014-07-26 11:44:03 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"aa25ea14ffcb0837e5eaa3d725228c300655f7c1\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:44:03 CEST] TransferScanner: pushing to [Remote { name =\"gitlab\" },Remote { name =\"github\" }]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"gitlab\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
-[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
-[2014-07-26 11:44:05 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges' '/~/[2014-07-26 11:44:05 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:44:05 CEST] RemoteControl: fromList []
-[2014-07-26 11:44:14 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges' '/~[2014-07-26 11:44:14 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:44:14 CEST] RemoteControl: fromList []
-[2014-07-26 11:44:30 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges'[2014-07-26 11:44:30 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:44:30 CEST] RemoteControl: fromList []
-[2014-07-26 11:45:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
-[2014-07-26 11:45:02 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges'[2014-07-26 11:45:02 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:45:02 CEST] RemoteControl: fromList []
-ssh: connect to host ec2-54-86-238-253.comput[2014-07-26 11:46:04 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
-[2014-07-26 11:46:04 CEST] RemoteControl: fromList []
-[2014-07-26 11:46:05 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
-[2014-07-26 11:46:06 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychange[2014-07-26 11:46:07 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:46:07 CEST] RemoteControl: fromList []
-ssh: connect to host ec2-54-86-238-253.com[2014-07-26 11:48:12 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
-[2014-07-26 11:48:12 CEST] RemoteControl: fromList []
-[2014-07-26 11:48:14 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
-[2014-07-26 11:48:15 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges' [2014-07-26 11:48:15 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:48:15 CEST] RemoteControl: fromList []
-ssh: connect to host ec2-54-86-238-253.compute[2014-07-26 11:50:21 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
-[2014-07-26 11:50:21 CEST] RemoteControl: fromList []
-[2014-07-26 11:50:25 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
-[2014-07-26 11:52:31 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
-Invalid command: 'git-annex-shell 'notifychanges' '/~/[2014-07-26 11:52:31 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
-[2014-07-26 11:52:31 CEST] RemoteControl: fromList []
-ssh: connect to host ec2-54-86-238-253.compute-1.a[2014-07-26 11:52:33 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
-[2014-07-26 11:52:34 CEST] RemoteControl: fromList []
-[2014-07-26 11:52:41 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
-To git@gitlab.com:jonan/annex-sync.git
-   01dd6e8..aa25ea1  annex/direct/master -> synced/master
-[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"gitlab\",\"master\"]
-[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
-[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
-Connection to github.com closed by remote host.
-fatal: The remote end hung up unexpectedly
-fatal: The remote end hung up unexpectedly
-[2014-07-26 11:54:07 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"master\"]
-[2014-07-26 11:54:32 CEST] TransferScanner: trying manual pull to resolve failed pushes
-[2014-07-26 11:54:32 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"github\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/annex/direct/master\"]
-[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
-[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"aa25ea14ffcb0837e5eaa3d725228c300655f7c1\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
-[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
-[2014-07-26 11:54:34 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/github/synced/master\"]
-[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"28cad03424f199957d616ecd78f208a24eedf955\"]
-[2014-07-26 11:54:34 CEST] TransferScanner: pushing to [Remote { name =\"github\" }]
-[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
-To git@github.com:Jonan88/annex-sync.git

(Diff truncated)
Added a comment
diff --git a/doc/forum/How_to_get_detailed_information_on_special_remotes__63__/comment_2_73f8b7ebde5870f92bec02d15a533ef3._comment b/doc/forum/How_to_get_detailed_information_on_special_remotes__63__/comment_2_73f8b7ebde5870f92bec02d15a533ef3._comment
new file mode 100644
index 0000000..cc17487
--- /dev/null
+++ b/doc/forum/How_to_get_detailed_information_on_special_remotes__63__/comment_2_73f8b7ebde5870f92bec02d15a533ef3._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="gernot"
+ subject="comment 2"
+ date="2014-11-09T20:30:39Z"
+ content="""
+That's perfect.  Thanks, Joey!
+"""]]

poll vote (/sdcard/annex)
diff --git a/doc/design/assistant/polls/Android_default_directory.mdwn b/doc/design/assistant/polls/Android_default_directory.mdwn
index 4822d26..e557ba2 100644
--- a/doc/design/assistant/polls/Android_default_directory.mdwn
+++ b/doc/design/assistant/polls/Android_default_directory.mdwn
@@ -4,4 +4,4 @@ Same as the desktop webapp, users will be able to enter a directory they
 want the first time they run it, but to save typing on android, anything
 that gets enough votes will be included in a list of choices as well.
 
-[[!poll open=yes expandable=yes 70 "/sdcard/annex" 6 "Whole /sdcard" 7 "DCIM directory (photos and videos only)" 2 "Same as for regular git-annex. ~/annex/"]]
+[[!poll open=yes expandable=yes 71 "/sdcard/annex" 6 "Whole /sdcard" 7 "DCIM directory (photos and videos only)" 2 "Same as for regular git-annex. ~/annex/"]]

poll vote (/sdcard/annex)
diff --git a/doc/design/assistant/polls/Android_default_directory.mdwn b/doc/design/assistant/polls/Android_default_directory.mdwn
index 6060dd6..4822d26 100644
--- a/doc/design/assistant/polls/Android_default_directory.mdwn
+++ b/doc/design/assistant/polls/Android_default_directory.mdwn
@@ -4,4 +4,4 @@ Same as the desktop webapp, users will be able to enter a directory they
 want the first time they run it, but to save typing on android, anything
 that gets enough votes will be included in a list of choices as well.
 
-[[!poll open=yes expandable=yes 69 "/sdcard/annex" 6 "Whole /sdcard" 7 "DCIM directory (photos and videos only)" 2 "Same as for regular git-annex. ~/annex/"]]
+[[!poll open=yes expandable=yes 70 "/sdcard/annex" 6 "Whole /sdcard" 7 "DCIM directory (photos and videos only)" 2 "Same as for regular git-annex. ~/annex/"]]

rename bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn to bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
deleted file mode 100644
index b914e7f..0000000
--- a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-lsof got updated to version 4.88 some days ago (in archlinux) and since then the assistant reports the Committer crashed while parsing lsof output.
-
-After reverting to the previous version (4.87), it's working fine.
diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
new file mode 100644
index 0000000..b914e7f
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88.mdwn
@@ -0,0 +1,3 @@
+lsof got updated to version 4.88 some days ago (in archlinux) and since then the assistant reports the Committer crashed while parsing lsof output.
+
+After reverting to the previous version (4.87), it's working fine.

diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
index 32f5257..b914e7f 100644
--- a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
@@ -1,2 +1,3 @@
 lsof got updated to version 4.88 some days ago (in archlinux) and since then the assistant reports the Committer crashed while parsing lsof output.
+
 After reverting to the previous version (4.87), it's working fine.

diff --git a/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
new file mode 100644
index 0000000..32f5257
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_crashes_when_parsing_lsof_output_for_version_4.88-1.mdwn
@@ -0,0 +1,2 @@
+lsof got updated to version 4.88 some days ago (in archlinux) and since then the assistant reports the Committer crashed while parsing lsof output.
+After reverting to the previous version (4.87), it's working fine.

Added a comment
diff --git a/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_2_e9dca04e0456ca7356996365a4b87d59._comment b/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_2_e9dca04e0456ca7356996365a4b87d59._comment
new file mode 100644
index 0000000..d7d4dec
--- /dev/null
+++ b/doc/bugs/git_annex_assistant_leaks_a_lot_of_memory/comment_2_e9dca04e0456ca7356996365a4b87d59._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="https://renaud.casenave.fr/"
+ subject="comment 2"
+ date="2014-11-08T07:18:48Z"
+ content="""
+Hi,
+
+Yes, the assistant memory goes back to normal when I do `git annex assistant --stop && git annex assistant`. But when I look at htop the next day, it has already taken 1Gb.
+
+There are quite a lot of files in `.git/annex/transfer`… wc reports more than 200 entries, mainly in the upload folder, although the repository only manages 10 or so files.
+
+I tried building git-annex using cabal but `cabal configure -fEKG` exits with the code 9 and even without `-fEKG` cabal refuses to install some of the dependencies. I'll try again some other time…
+
+"""]]

diff --git a/doc/forum/possible_gpg_issue.mdwn b/doc/forum/possible_gpg_issue.mdwn
index afab2eb..5a3d939 100644
--- a/doc/forum/possible_gpg_issue.mdwn
+++ b/doc/forum/possible_gpg_issue.mdwn
@@ -13,7 +13,7 @@ Below is the debug output from a failed git annex copy command.
     cw@ubuntu$ git annex copy annexedfile --to smbremote --debug
     [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","show-ref","git-annex"]
     [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","show-ref","--hash","refs/heads/git-annex"]
-    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase.git","--work-tree=/repobase","log","refs/heads/git-annex..aa8813d486939544701359dc28fa7b0916917961","--oneline","-n1"]
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","log","refs/heads/git-annex..aa8813d486939544701359dc28fa7b0916917961","--oneline","-n1"]
     [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","log","refs/heads/git-annex..097d5b482d6856ce22814a0c2c5eee43e3e030e4","--oneline","-n1"]
     [2014-11-07 15:35:13 PST] chat: git ["--git-dir=/repobase/.git","--work-tree=/repobase","cat-file","--batch"]
     [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","ls-files","--cached","-z","--","annexedfile"]

diff --git a/doc/forum/possible_gpg_issue.mdwn b/doc/forum/possible_gpg_issue.mdwn
new file mode 100644
index 0000000..afab2eb
--- /dev/null
+++ b/doc/forum/possible_gpg_issue.mdwn
@@ -0,0 +1,28 @@
+Hi,
+
+I'm having an issue and not sure if it's to do with git-annex or something external. I'm on Ubuntu 14.04, and have been using git-annex for several months without this issue, but it suddenly started (possibly) after several packages were updated via apt-get upgrade.
+
+We have two remotes configured, one is a local (LAN) smb share, the other is on Amazon S3. We're using shared encryption on the S3 remote, and no encryption on the smb remote.
+
+The problem that started happening recently is when copying to the smb remote. There is no problem copying from the remote, and no problem reading or writing to the drive outside of git-annex. However, copying to the remote fails after it seems to copy most or all of the file and then hang on a gpg step. Again, there is no encryption on this remote. The other S3 remote with shared encryption has no issues. Other devices on the LAN, all OS X, have no issues writing to the remote.
+
+I don't have enough info to necessarily claim this is a bug in git-annex, but I'm not sure what to poke at next to try to figure it out. Any help or advice would be greatly appreciated.
+
+Below is the debug output from a failed git annex copy command.
+
+    cw@ubuntu$ git annex copy annexedfile --to smbremote --debug
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","show-ref","git-annex"]
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","show-ref","--hash","refs/heads/git-annex"]
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase.git","--work-tree=/repobase","log","refs/heads/git-annex..aa8813d486939544701359dc28fa7b0916917961","--oneline","-n1"]
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","log","refs/heads/git-annex..097d5b482d6856ce22814a0c2c5eee43e3e030e4","--oneline","-n1"]
+    [2014-11-07 15:35:13 PST] chat: git ["--git-dir=/repobase/.git","--work-tree=/repobase","cat-file","--batch"]
+    [2014-11-07 15:35:13 PST] read: git ["--git-dir=/repobase/.git","--work-tree=/repobase","ls-files","--cached","-z","--","annexedfile"]
+    copy annexedfile (gpg) (to smbremote...) 
+    [2014-11-07 15:35:13 PST] chat: gpg ["--quiet","--trust-model","always","--batch","--passphrase-fd","11","--symmetric","--force-mdc","--no-textmode"]
+    95%           0.0 B/s 0s/mnt/annex/tmp/GPGHMACSHA1--a097a9b653d1facbe7d37d0e8f9f580261d9adef/GPGHMACSHA1--a097a9b653d1facbe7d37d0e8f9f580261d9adef: hClose: does not exist (Host is down)
+    failed                  
+    git-annex: copy: 1 failed
+    cw@ubuntu$
+
+Thanks,
+cw

update
diff --git a/doc/thanks.mdwn b/doc/thanks.mdwn
index c4a559b..c4cefbb 100644
--- a/doc/thanks.mdwn
+++ b/doc/thanks.mdwn
@@ -132,7 +132,7 @@ Poobalasubramanian, Alexandre Garel, David Clark, Jeff Johnson,
 Mica Semrick, Paul Staab, Rémi Vanicat, Martin Holtschneider, Jan Ivar
 Beddari, Peter Simons, Thomas Koch, Justin Geibel, Guillaume DELVIT, Shanti
 Bouchez, Oliver Brandt, François Deppierraz, Chad Walstrom, Tim Mattison,
-Jakub Antoni Tyszko, Casa do Boneco, Florian Tham, 
+Jakub Antoni Tyszko, Casa do Boneco, Florian Tham, martin f. krafft,
 and 30 anonymous bitcoin users
 
 With an especial thanks to the WikiMedia foundation,

bug with git annex sync --content and achive
diff --git a/doc/bugs/git_annex_sync_--content_may_copy_then_drop_a_file_to_a_remote.mdwn b/doc/bugs/git_annex_sync_--content_may_copy_then_drop_a_file_to_a_remote.mdwn
new file mode 100644
index 0000000..3ec60ca
--- /dev/null
+++ b/doc/bugs/git_annex_sync_--content_may_copy_then_drop_a_file_to_a_remote.mdwn
@@ -0,0 +1,33 @@
+### Please describe the problem.
+
+When using `git annex sync --content` with two archive with different cost, git annex will upload my file to the first archive, then to the second one, then it will drop it from the first one.
+
+### What steps will reproduce the problem?
+
+I've set both remote to "trusted", both in the "archive" group, both with "standard" preferred content, the remote named "hubic2" as an annex-cost of 200.0, and the remote named "hubic3" as an annex-cost of 175.0
+
+### What version of git-annex are you using? On what operating system?
+I'm using git-annex 5.20141125 on Debian Sid (upgraded today on November 7 2014).
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+$ git annex list | head
+here
+|hubic2
+||hubic3
+|||
+X__ Avatars/archer.jpg
+$ git annex sync --content
+commit  ok
+copy Avatars/archer.jpg copy Avatars/archer.jpg (to hubic3...)
+ok
+copy Avatars/archer.jpg copy Avatars/archer.jpg (to hubic2...)
+ok
+drop hubic3 Avatars/archer.jpg ok
+
+# End of transcript or log.
+"""]]