Recent changes to this wiki:

typo
diff --git a/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment b/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment
index 888e8e9..b0c6b76 100644
--- a/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment
+++ b/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment
@@ -11,5 +11,8 @@ The man page documents this:
 
 As you've noted, this has to rely on the location tracking information being up-to-date, so if it's not it might miss copying a file to the remote that the remote doesn't currently have but used to. Otherwise, it's fine to use `copy --fast --to --remote` or `copy --not --in remote --to remote`, which is functionally identical.
 
-The check is not a GET request, it's a HEAD request, to check if the file is present. Does S3 have a way to combine multiple HEAD requests in a single http request? That seems unlikely. Maybe it is enough to reuse an open http connection for multiple GETs? Anything needing a single HEAD request would not fit well into git-annex, but ways to do more caching of open http connections are being considered.
+The check is not a GET request, it's a HEAD request, to check if the file
+is present. Does S3 have a way to combine multiple HEAD requests in a
+single http request? That seems unlikely. Maybe it is enough to reuse an
+open http connection for multiple HEADs? Anything needing a single HEAD request would not fit well into git-annex, but ways to do more caching of open http connections are being considered.
 """]]

Added a comment
diff --git a/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment b/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment
new file mode 100644
index 0000000..888e8e9
--- /dev/null
+++ b/doc/bugs/Issue_fewer_S3_GET_requests/comment_1_59a6b87d01c003bf55cde4c882e1778c._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 1"
+ date="2014-10-22T21:36:27Z"
+ content="""
+The man page documents this:
+
+> To avoid contacting the remote to check if it has every
+> file when copying --to the repository, specify --fast
+
+As you've noted, this has to rely on the location tracking information being up-to-date, so if it's not it might miss copying a file to the remote that the remote doesn't currently have but used to. Otherwise, it's fine to use `copy --fast --to --remote` or `copy --not --in remote --to remote`, which is functionally identical.
+
+The check is not a GET request, it's a HEAD request, to check if the file is present. Does S3 have a way to combine multiple HEAD requests in a single http request? That seems unlikely. Maybe it is enough to reuse an open http connection for multiple GETs? Anything needing a single HEAD request would not fit well into git-annex, but ways to do more caching of open http connections are being considered.
+"""]]

Added a comment
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_8_1267236ae339d1affd46edb5cf5f4ac5._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_8_1267236ae339d1affd46edb5cf5f4ac5._comment
new file mode 100644
index 0000000..5265d7c
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_8_1267236ae339d1affd46edb5cf5f4ac5._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkck-Tokgfh_1Fwh6pkl69xPA_dYUgA4Tg"
+ nickname="Benjamin"
+ subject="comment 8"
+ date="2014-10-22T19:56:23Z"
+ content="""
+Thanks, deleting the cached file fixed it.
+"""]]

Added a comment
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_7_c96b71759fe0d2af450e321ca57edb46._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_7_c96b71759fe0d2af450e321ca57edb46._comment
new file mode 100644
index 0000000..0cdef26
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_7_c96b71759fe0d2af450e321ca57edb46._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 7"
+ date="2014-10-22T18:30:29Z"
+ content="""
+I forgot to include the creds in `git annex info` for glacier; fixed that now.
+
+It seems that changing the creds with `enableremote` did embed them into your git repository, but it neglected to update the .git/annex/creds/$remoteuuid file that caches the creds locally. So I think that your old creds are still cached there, and still being used, and this explains why the file is not found in glacier; the wrong creds are being used to access it! You can work around this by deleting the .git/annex/creds/$remoteuuid file correspnding to the uuid of the glacier remote. (You can also look at that file and compare it with what the creds are supposed to be.) I have fixed git-annex enableremote to update that creds file.
+
+Also, it looks like you did not fall afoul of the [[upgrades/insecure_embedded_creds]] problem! If you had, this new version of git-annex would be complaining that it had detected that problem. If you want to double-check that, the s3creds= value is base64 encoded, and when run through `base64 -d`, it should yield a gpg encrypted file. If your repo did have that problem, it would instead decode to the creds in clear text.
+"""]]

fix: get, not drop for get...
diff --git a/doc/tips/file_manager_integration.mdwn b/doc/tips/file_manager_integration.mdwn
index b81d758..8f47a3d 100644
--- a/doc/tips/file_manager_integration.mdwn
+++ b/doc/tips/file_manager_integration.mdwn
@@ -31,7 +31,7 @@ XFCE uses the Thunar file manager, which can also be easily configured to allow
 
 for drop, and for get:
 
-    git-annex drop --notify-start --notify-finish -- %F
+    git-annex get --notify-start --notify-finish -- %F
 
 This gives me the resulting config on disk, in `.config/Thunar/uca.xml`:
 

diff --git a/doc/bugs/Issue_fewer_S3_GET_requests.mdwn b/doc/bugs/Issue_fewer_S3_GET_requests.mdwn
new file mode 100644
index 0000000..8bbcfa1
--- /dev/null
+++ b/doc/bugs/Issue_fewer_S3_GET_requests.mdwn
@@ -0,0 +1,9 @@
+It appears that git-annex issues one GET request to S3 / Google cloud for every file it tries to copy, if you don't pass --fast.  (I could be wrong; I'm basing this on the fact that each "checking <remote name>" takes about the same amount of time, and that it's slow enough to be hitting the network.)
+
+Amazon lets you GET 1000 objects in one GET request, and afaict a request that returns 1000 objects costs just as much as a request that returns 1 object.  The cost of GET'ing every file in my annex is nontrivial -- Google charges 0.01 per 1000 GETs, and my repo has 130k objects, so that's $1.3, compared to a monthly cost for storage of under $10.  This means that if I want to back up my files more than, say, once a week, I need to write a script that parses the JSON output of git annex whereis and uploads with --fast only the files that aren't present in the cloud.  It also means that I have to trust the output of whereis.
+
+All those GETs also slow down the non-fast copy, and this also applies to other kinds of remotes.
+
+There are a number of ways one could implement this.  One way would be to have a command that updates the whereis data from the remote and then to add a parameter (maybe you already have it) to copy that's like --fast but skips files that are already present (maybe this is what --fast already does, but I did a quick check and it doesn't seem to).  Because of the way git annex names files, I think it would be hard to coalesce GETs during a copy command, but it could be done.
+
+Anyway, please don't consider this a high-priority request; I can get by as-is, and I <3 git annex.

Added a comment
diff --git a/doc/forum/ARM_build_on_Zyxel_NAS/comment_3_b4f6e5ac672e8ece36cceb74ff3315dd._comment b/doc/forum/ARM_build_on_Zyxel_NAS/comment_3_b4f6e5ac672e8ece36cceb74ff3315dd._comment
new file mode 100644
index 0000000..2ff40ef
--- /dev/null
+++ b/doc/forum/ARM_build_on_Zyxel_NAS/comment_3_b4f6e5ac672e8ece36cceb74ff3315dd._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 3"
+ date="2014-10-22T16:22:24Z"
+ content="""
+I know kernel 3.2 would work. I don't know what the minimum kernel supported by glibc 2.13 is.
+"""]]

Added a comment
diff --git a/doc/forum/git_annex_sync:_only_git-annex/comment_4_cc3cebf5bc403b490e31e63af964a823._comment b/doc/forum/git_annex_sync:_only_git-annex/comment_4_cc3cebf5bc403b490e31e63af964a823._comment
new file mode 100644
index 0000000..134ea87
--- /dev/null
+++ b/doc/forum/git_annex_sync:_only_git-annex/comment_4_cc3cebf5bc403b490e31e63af964a823._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 4"
+ date="2014-10-22T16:18:50Z"
+ content="""
+I struggle to see how you could draw that conclusion from what I said.
+
+git-annex will work fine in an existing git repository. You can mix regular git commands like `git add`, `git push`, `git pull`, `git merge` with git-annex commands like `git annex add`, `git annex copy --to origin`, `git annex get`, `git annex merge`, in the same repository.
+
+The `git annex sync` command effcetively runs `git commit; git pull; git annex merge; git push; git annex copy --to origin; git annex get`. If you don't want to run all those commands at once, you don't want to run `git annex sync`. That will not prevent you from using git-annex in any way.
+"""]]

Added a comment
diff --git a/doc/forum/git_annex_sync:_only_git-annex/comment_3_7753f8276478e0e05c10dba2b84bbc49._comment b/doc/forum/git_annex_sync:_only_git-annex/comment_3_7753f8276478e0e05c10dba2b84bbc49._comment
new file mode 100644
index 0000000..49a61c0
--- /dev/null
+++ b/doc/forum/git_annex_sync:_only_git-annex/comment_3_7753f8276478e0e05c10dba2b84bbc49._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 3"
+ date="2014-10-22T16:18:16Z"
+ content="""
+I struggle to see how you could draw that conclusion from what I said.
+
+git-annex will work fine in an existing git repository. You can mix regular git commands like `git add`, `git push`, `git pull`, `git merge` with git-annex commands like `git annex add`, `git annex copy --to origin`, `git annex get`, `git annex merge`, in the same repository.
+
+The `git annex sync` command effcetively runs `git commit; git pull; git annex merge; git push; git annex copy --to origin; git annex get`. If you don't want to run all those commands at once, you don't want to run `git annex sync`. That will not prevent you from using git-annex in any way.
+"""]]

Added a comment
diff --git a/doc/forum/git_annex_sync:_only_git-annex/comment_2_50e137e4d278dfd0103a41aff0cfa3a9._comment b/doc/forum/git_annex_sync:_only_git-annex/comment_2_50e137e4d278dfd0103a41aff0cfa3a9._comment
new file mode 100644
index 0000000..10f3792
--- /dev/null
+++ b/doc/forum/git_annex_sync:_only_git-annex/comment_2_50e137e4d278dfd0103a41aff0cfa3a9._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlog_5wIICaMcrKTexlFNA6IO6UTp323aE"
+ nickname="Torkaly"
+ subject="comment 2"
+ date="2014-10-22T08:56:43Z"
+ content="""
+Thank you for your response.
+
+So annex looks like it's not really designed to work with an existing git repository, but only standalone?!
+"""]]

Added a comment
diff --git a/doc/forum/ARM_build_on_Zyxel_NAS/comment_2_44c8f1af0cbe9ad51794e6d8d16be627._comment b/doc/forum/ARM_build_on_Zyxel_NAS/comment_2_44c8f1af0cbe9ad51794e6d8d16be627._comment
new file mode 100644
index 0000000..9cec2bf
--- /dev/null
+++ b/doc/forum/ARM_build_on_Zyxel_NAS/comment_2_44c8f1af0cbe9ad51794e6d8d16be627._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="musella"
+ ip="84.73.42.152"
+ subject="comment 2"
+ date="2014-10-21T23:35:35Z"
+ content="""
+what is the minimal kernel version that I would need?
+
+"""]]

Added a comment: autobuild test
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_6_9c8f262b3d8b37f2e68108337acbd303._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_6_9c8f262b3d8b37f2e68108337acbd303._comment
new file mode 100644
index 0000000..48e9f53
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_6_9c8f262b3d8b37f2e68108337acbd303._comment
@@ -0,0 +1,48 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkck-Tokgfh_1Fwh6pkl69xPA_dYUgA4Tg"
+ nickname="Benjamin"
+ subject="autobuild test"
+ date="2014-10-21T22:09:47Z"
+ content="""
+Okay I managed to package the autobuild for my Arch system and installed. Here is what I get, retrieving finished glacier retrieval jobs which was started yesterday:
+
+Without AWS credentials as environment variables, the call fails:
+[[!format sh \"\"\"
+[ben@voyagerS9 annextest]$ git annex get --from=glacier mydir/myfile1                                                                                                                    
+get mydir/myfile (from glacier...) (gpg)
+['/usr/local/bin/glacier', '--region=us-east-1', 'archive', 'retrieve', '-o-', 'glacier-myvault', 'GPGHMACSHA1--4286b1a121892c9e64de436725478b0bc5038e67']
+glacier: archive 'GPGHMACSHA1--4286b1a121892c9e64de436725478b0bc5038e67' not found
+failed
+git-annex: get: 1 failed 
+\"\"\"]]
+
+I patched the glacier-cli Python source so that it prints out the command arguments argv.
+The archive _does_ exist. Executing the glacier-cli command manually is successful. So is calling
+git-annex with AWS credentials exported into env:
+
+[[!format sh \"\"\"
+[ben@voyagerS9 annextest]$ git annex get --from=glacier mydir/myfile2
+get mydir/myfile2 (from glacier...) (gpg)
+['/usr/local/bin/glacier', '--region=us-east-1', 'archive', 'retrieve', '-o-', 'glacier-myvault', 'GPGHMACSHA1--c3827c03d48b4829c7cc584778652c66e2784b0f']
+ok
+(Recording state in git...)
+\"\"\"]]
+
+So I guess one bug is fixed, although I think there is a wrong error message.
+
+Regarding AWS credentials, I have no success in updating credentials or finding out which if any are embedded:
+[[!format sh \"\"\"
+[ben@voyagerS9 annextest]$ git annex info glacier                                                                                                                                                                                                                              
+remote: glacier                                                                                                                                                                                                                                                                
+description: [glacier]                                                                                                                                                                                                                                                         
+uuid: b4dcf525-40c7-4f04-86cc-3850d1260680                                                                                                                                                                                                                                     
+cost: 1050.0                                                                                                                                                                                                                                                                   
+type: glacier                                                                                                                                                                                                                                                                  
+glacier vault: glacier-myvault                                                                                                                                                                                                                    
+encryption: encrypted (to gpg keys: MYKEY)                                                                                                                                                                                                                          
+chunking: none
+\"\"\"]]
+
+When I checkout the git-annex branch and look into the remote.log I see fields for cipher, cipherkeys, datacenter, embedcreds=yes, name, s3creds, type, vault, timestamp.
+The s3creds field does not look like my current AWS credentials, at least not in plaintext.
+"""]]

Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_10_b7e912bac673bdffa5775b71d5d39937._comment b/doc/bugs/Upload_to_S3_fails_/comment_10_b7e912bac673bdffa5775b71d5d39937._comment
new file mode 100644
index 0000000..ecc34d4
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_10_b7e912bac673bdffa5775b71d5d39937._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkvSZ1AFJdY_1FeutZr_KWeqtzjZta1PNE"
+ nickname="Thedward"
+ subject="comment 10"
+ date="2014-10-21T21:25:57Z"
+ content="""
+The only files that succeeded were small text files. The other files — 3-200MiB — all failed.
+"""]]

Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_9_dd837a1cb2146224b9c000cbeea4f3b3._comment b/doc/bugs/Upload_to_S3_fails_/comment_9_dd837a1cb2146224b9c000cbeea4f3b3._comment
new file mode 100644
index 0000000..4cfda38
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_9_dd837a1cb2146224b9c000cbeea4f3b3._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 9"
+ date="2014-10-21T20:22:52Z"
+ content="""
+How big is the file that it fails to copy?
+"""]]

close
diff --git a/doc/bugs/_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41_____91__2014-07-23_16:41:45_CEST__93___WebApp:_warning_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41__.mdwn b/doc/bugs/_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41_____91__2014-07-23_16:41:45_CEST__93___WebApp:_warning_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41__.mdwn
index 77d2beb..69732a7 100644
--- a/doc/bugs/_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41_____91__2014-07-23_16:41:45_CEST__93___WebApp:_warning_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41__.mdwn
+++ b/doc/bugs/_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41_____91__2014-07-23_16:41:45_CEST__93___WebApp:_warning_WebApp_crashed:_getAddrInfo:_does_not_exist___40__Name_or_service_not_known__41__.mdwn
@@ -42,3 +42,5 @@ WebApp crashed: getAddrInfo: does not exist (Name or service not known)
 
 # End of transcript or log.
 """]]
+
+> [[done]] --[[Joey]] 

confirmed
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
index 922936d..69c029c 100644
--- a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
@@ -38,3 +38,4 @@ Similarly for directories:
 
 
 [[!meta title="manual mode preferred content expression does not want newer versions of present files"]]
+[[!tag confirmed]]

Added a comment
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_2_7316cba69b9dc0415fea1389238edf25._comment b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_2_7316cba69b9dc0415fea1389238edf25._comment
new file mode 100644
index 0000000..194f7a3
--- /dev/null
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync/comment_2_7316cba69b9dc0415fea1389238edf25._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 2"
+ date="2014-10-21T20:20:25Z"
+ content="""
+The problem is that there's no way for preferred content expressions to specify that a file is wanted just because some old version of the file is (or was) present.
+
+It's not clear to me how that could be added to the preferred content expressions in an efficient way.
+
+It might be possible to hack `git annex sync --content` and the assistant to look at incoming merges, and queue downloads of newer versions of files before merging.
+
+Also being discussed at <https://github.com/datalad/datalad/issues/6>.
+"""]]

url fix
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
index 6564b97..922936d 100644
--- a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
@@ -1,6 +1,6 @@
 ### Please describe the problem.
 
-This is a followup from the discussion on https://git-annex.branchable.com/forum/Standard_groups__47__preferred_contents/ where I unfortunately did not get a complete answer.
+This is a followup from the discussion on <https://git-annex.branchable.com/forum/Standard_groups__47__preferred_contents/> where I unfortunately did not get a complete answer.
 I don't know if it is really a bug but at least it does not work as I would expect and the documentation provides no clear discussion on that.
 
 Now to the problem:

retitle
diff --git a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
index 432ab90..6564b97 100644
--- a/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
+++ b/doc/bugs/present_files__47__directories_are_dropped_after_a_sync.mdwn
@@ -36,3 +36,5 @@ Similarly for directories:
     key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
     remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
 
+
+[[!meta title="manual mode preferred content expression does not want newer versions of present files"]]

title
diff --git a/doc/bugs/annex_get_fails_from_read-only_filesystem.mdwn b/doc/bugs/annex_get_fails_from_read-only_filesystem.mdwn
index 43efc38..18b446e 100644
--- a/doc/bugs/annex_get_fails_from_read-only_filesystem.mdwn
+++ b/doc/bugs/annex_get_fails_from_read-only_filesystem.mdwn
@@ -22,3 +22,6 @@ annex.version = 3 in the remote
     local repository version: 5
     supported repository version: 5
     upgrade supported from repository versions: 0 1 2 4
+
+[[!tag confirmed]]
+[[!meta title="read-only filesystem on remote prevents auto-upgrade from v3 to v5, and prevents using a remote"]]

move to todo
diff --git a/doc/bugs/sync_does_not_preserve_timestamps.mdwn b/doc/bugs/sync_does_not_preserve_timestamps.mdwn
deleted file mode 100644
index 0d8f237..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps.mdwn
+++ /dev/null
@@ -1,16 +0,0 @@
-### Please describe the problem.
-I see that files are synced between my computers with git-annex but the timestamps do not match. The one that receives files always puts the current time of file creation on the file.
-
-### What steps will reproduce the problem?
-Install git-annex on two computers. Connect with XMPP. Then add cloud storage with shared encryption for transferring files. Since you want also backup, choose "full backup" as the type of cloud storage.
-
-
-### What version of git-annex are you using? On what operating system?
-Downloaded binary package dated 13/09/2014 amd64 Ubuntu 14.04.
-
-
-### Please provide any additional information below.
-
-Files are in sync. For example, I move a file from a directory to my synced annex directory. It contains timestamp of 01/01/2010 for example. Once the file gets transferred to the remote computer, it gets current time, for example 20/09/2014 rather than keeping 01/01/2010. 
-
-All computers are linux based, ext4 filesystems. File transfers are done through shared encryption rsync remote.
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment
deleted file mode 100644
index 48ec44d..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment
+++ /dev/null
@@ -1,8 +0,0 @@
-[[!comment format=mdwn
- username="http://joeyh.name/"
- ip="209.250.56.144"
- subject="comment 1"
- date="2014-09-23T20:27:25Z"
- content="""
-The closest git comes to storing a timestamp is the date of the last commit of a file for mtime, and first commit for ctime. However, those are pretty expensive to look up for a given file. And git doesn't try to preserve timestamps in checkouts at all, which argues that git-annex, at least at the command line, should not either.
-"""]]
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment
deleted file mode 100644
index 4b5a750..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment
+++ /dev/null
@@ -1,12 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo"
- nickname="Emre"
- subject="comment 2"
- date="2014-09-23T20:58:10Z"
- content="""
-Thanks Joey for the comment. 
-
-But when syncing two repos, timestamps are critical at least for my use case. I can't lose this info. Even if it's expensive. 
-
-Appreciate if you can consider to add it for direct mode repos, ie when a file is synced to another repo and created there, it shall carry at least the mtime of the file in source repo. Owncloud sync does it, btsync does it, although I know git-annex is different than those. 
-"""]]
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment
deleted file mode 100644
index ba34823..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment
+++ /dev/null
@@ -1,8 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo"
- nickname="Emre"
- subject="comment 3"
- date="2014-09-23T21:15:29Z"
- content="""
-Btw, git storing the last commit time as Mtime is not enough, it shall store the original timestamp of the file, not the date of commit. Hope I could explain and hope this is something doable.
-"""]]
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment
deleted file mode 100644
index 08de756..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!comment format=mdwn
- username="http://svario.it/gioele"
- nickname="gioele"
- subject="comment 4"
- date="2014-09-24T07:15:09Z"
- content="""
-You can try to store the timestamps just before commit and restore them on checkout.
-
-Have a look at [metastore](https://github.com/przemoc/metastore): it is a ready-made solution for plain git. Maybe you can adapt it to git-annex.
-"""]]
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment
deleted file mode 100644
index 7632548..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_5_c95c8b9bd617830604500213c962fc7a._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY"
- nickname="Tor Arne"
- subject="comment 5"
- date="2014-10-01T22:02:43Z"
- content="""
-I was just about to start using git-annex for my data when I saw this bug report, which unfortunately is a blocker. Persisting basic metadata of files that are synced seems like a core feature of a file sync/transfer tool, so I'm really hoping this can be solved somehow :/
-
-"""]]
diff --git a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment b/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment
deleted file mode 100644
index 67fe255..0000000
--- a/doc/bugs/sync_does_not_preserve_timestamps/comment_6_b99e00d0bc4258c4cb28b544b19ea3b8._comment
+++ /dev/null
@@ -1,12 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY"
- nickname="Tor Arne"
- subject="comment 6"
- date="2014-10-01T22:39:01Z"
- content="""
-Isn't this what the metadata feature does though? http://git-annex.branchable.com/design/metadata/
-
-With annex.genmetadata true set, it should store year and mont (but not day/time? if so why not?
-
-Is the missing piece of the puzzle to apply the metadata again on checkout?
-"""]]
diff --git a/doc/todo/does_not_preserve_timestamps.mdwn b/doc/todo/does_not_preserve_timestamps.mdwn
new file mode 100644
index 0000000..0d8f237
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps.mdwn
@@ -0,0 +1,16 @@
+### Please describe the problem.
+I see that files are synced between my computers with git-annex but the timestamps do not match. The one that receives files always puts the current time of file creation on the file.
+
+### What steps will reproduce the problem?
+Install git-annex on two computers. Connect with XMPP. Then add cloud storage with shared encryption for transferring files. Since you want also backup, choose "full backup" as the type of cloud storage.
+
+
+### What version of git-annex are you using? On what operating system?
+Downloaded binary package dated 13/09/2014 amd64 Ubuntu 14.04.
+
+
+### Please provide any additional information below.
+
+Files are in sync. For example, I move a file from a directory to my synced annex directory. It contains timestamp of 01/01/2010 for example. Once the file gets transferred to the remote computer, it gets current time, for example 20/09/2014 rather than keeping 01/01/2010. 
+
+All computers are linux based, ext4 filesystems. File transfers are done through shared encryption rsync remote.
diff --git a/doc/todo/does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment b/doc/todo/does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment
new file mode 100644
index 0000000..48ec44d
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_1_caf5e5cb17f4d05fff8c2fab661cd93f._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.144"
+ subject="comment 1"
+ date="2014-09-23T20:27:25Z"
+ content="""
+The closest git comes to storing a timestamp is the date of the last commit of a file for mtime, and first commit for ctime. However, those are pretty expensive to look up for a given file. And git doesn't try to preserve timestamps in checkouts at all, which argues that git-annex, at least at the command line, should not either.
+"""]]
diff --git a/doc/todo/does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment b/doc/todo/does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment
new file mode 100644
index 0000000..4b5a750
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_2_c337fca1474b5b78f61ad6f421138ae4._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo"
+ nickname="Emre"
+ subject="comment 2"
+ date="2014-09-23T20:58:10Z"
+ content="""
+Thanks Joey for the comment. 
+
+But when syncing two repos, timestamps are critical at least for my use case. I can't lose this info. Even if it's expensive. 
+
+Appreciate if you can consider to add it for direct mode repos, ie when a file is synced to another repo and created there, it shall carry at least the mtime of the file in source repo. Owncloud sync does it, btsync does it, although I know git-annex is different than those. 
+"""]]
diff --git a/doc/todo/does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment b/doc/todo/does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment
new file mode 100644
index 0000000..ba34823
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_3_9a3eeddc46e5a420575f00cb47caf703._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawmK0703vNSIQsP1mGf-4MAPnsBZiSc6yVo"
+ nickname="Emre"
+ subject="comment 3"
+ date="2014-09-23T21:15:29Z"
+ content="""
+Btw, git storing the last commit time as Mtime is not enough, it shall store the original timestamp of the file, not the date of commit. Hope I could explain and hope this is something doable.
+"""]]
diff --git a/doc/todo/does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment b/doc/todo/does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment
new file mode 100644
index 0000000..08de756
--- /dev/null
+++ b/doc/todo/does_not_preserve_timestamps/comment_4_99b064259fc2e3c6eb83c3da3b2d3bac._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://svario.it/gioele"
+ nickname="gioele"
+ subject="comment 4"
+ date="2014-09-24T07:15:09Z"
+ content="""
+You can try to store the timestamps just before commit and restore them on checkout.
+
+Have a look at [metastore](https://github.com/przemoc/metastore): it is a ready-made solution for plain git. Maybe you can adapt it to git-annex.

(Diff truncated)
Added a comment
diff --git a/doc/bugs/rsync_remote_is_not_working/comment_1_8998edf856a411de1f90b27568628feb._comment b/doc/bugs/rsync_remote_is_not_working/comment_1_8998edf856a411de1f90b27568628feb._comment
new file mode 100644
index 0000000..50f0c06
--- /dev/null
+++ b/doc/bugs/rsync_remote_is_not_working/comment_1_8998edf856a411de1f90b27568628feb._comment
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 1"
+ date="2014-10-21T20:07:40Z"
+ content="""
+A \"small archive\" only wants to contain files that are located inside archive/ directories.
+
+That seems to explain everything you reported except for:
+
+> 6. but the sizes are really small, seems that the actual files are not being transferred
+
+Maybe the remote is configured to use chunking? What happens if you run `git annex fsck --from $remotename` after copying a file to it? Any problem detected?
+
+> The add remote interface stops at \"check remote\" prompt for a long time without completing
+
+Please explain exactly what you did in the webapp. What did you click on, and what did you enter? I need enough detail to be able to reproduce the problem.
+
+(Also, in the future, one problem per bug report turns out to be a lot less confusing, and have better results all around. True here and really anywhere..)
+"""]]

Added a comment
diff --git a/doc/bugs/vicfg_and_description_often_not_propagated/comment_2_d56aed617e0791aa17d9f37c8d3fd317._comment b/doc/bugs/vicfg_and_description_often_not_propagated/comment_2_d56aed617e0791aa17d9f37c8d3fd317._comment
new file mode 100644
index 0000000..cb48536
--- /dev/null
+++ b/doc/bugs/vicfg_and_description_often_not_propagated/comment_2_d56aed617e0791aa17d9f37c8d3fd317._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 2"
+ date="2014-10-21T20:02:40Z"
+ content="""
+Can you please provide more information, like showing the commits made to the git-annex branch when the configuration was reverted?
+
+Also, might some of the clocks of computers where you're using git-annex be set wrong?
+
+I have tagged this report moreinfo because I don't have enough information to do anything else.
+"""]]

moreinfo
diff --git a/doc/bugs/vicfg_and_description_often_not_propagated.mdwn b/doc/bugs/vicfg_and_description_often_not_propagated.mdwn
index d42ba43..7e6dd92 100644
--- a/doc/bugs/vicfg_and_description_often_not_propagated.mdwn
+++ b/doc/bugs/vicfg_and_description_often_not_propagated.mdwn
@@ -150,3 +150,5 @@ wanted a6febfa0-9fe5-4a65-95bb-dc255d87c2e2 = standard
 #schedule a6febfa0-9fe5-4a65-95bb-dc255d87c2e2 =
 # End of transcript or log.
 """]]
+
+[[!tag moreinfo]]

Added a comment
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_5_488bb44796e6a4e16f7bfc1f229233e7._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_5_488bb44796e6a4e16f7bfc1f229233e7._comment
new file mode 100644
index 0000000..c67f602
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_5_488bb44796e6a4e16f7bfc1f229233e7._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 5"
+ date="2014-10-21T19:59:06Z"
+ content="""
+Recent autobuilds will also print out some useful info when you run `git annex info glacier`, including where it's getting the AWS credentials from.
+"""]]

close
diff --git a/doc/bugs/get_from_glacier_fails_too_early.mdwn b/doc/bugs/get_from_glacier_fails_too_early.mdwn
index 82594c1..4892403 100644
--- a/doc/bugs/get_from_glacier_fails_too_early.mdwn
+++ b/doc/bugs/get_from_glacier_fails_too_early.mdwn
@@ -67,3 +67,6 @@ with no noticeable change.
 I had changed the AWS credentials a while ago.
 
 Tomorrow I will try to download a just recently uploaded file with the current credentials and keys.
+
+> [[done]];  I am not confident that I understand this failure on retrival,
+> and that I've fixed it.  --[[Joey]]

devblog
diff --git a/doc/devblog/day_227__info.mdwn b/doc/devblog/day_227__info.mdwn
new file mode 100644
index 0000000..0b5950f
--- /dev/null
+++ b/doc/devblog/day_227__info.mdwn
@@ -0,0 +1,33 @@
+Today, I've expanded `git annex info` to also be able to be used on annexed files
+and on remotes. Looking at the info for an individual remote is quite
+useful, especially for answering questions like: Does the remote have
+embedded creds? Are they encrypted? Does it use chunking? Is that old style
+chunking?
+
+<pre>
+remote: rsync.net
+description: rsync.net demo remote
+uuid: 15b42f18-ebf2-11e1-bea1-f71f1515f9f1
+cost: 250.0
+type: rsync
+url: xxx@usw-s002.rsync.net:foo
+encryption: encrypted (to gpg keys: 7321FC22AC211D23 C910D9222512E3C7)
+chunking: 1 MB chunks
+</pre>
+
+<pre>
+remote: ia3
+description: test [ia3]
+uuid: 12817311-a189-4de3-b806-5f339d304230
+cost: 200.0
+type: S3
+creds: embedded in git repository (not encrypted)
+bucket: joeyh-test-17oct-3
+internet archive item: http://archive.org/details/joeyh-test-17oct-3
+encryption: not encrypted
+chunking: none
+</pre>
+
+Should be quite useful info for debugging too..
+
+Yesterday, I fixed a bug that prevented retrieving files from Glacier.

add per-remote-type info
Now `git annex info $remote` shows info specific to the type of the remote,
for example, it shows the rsync url.
Remote types that support encryption or chunking also include that in their
info.
This commit was sponsored by Ævar Arnfjörð Bjarmason.
diff --git a/Command/Info.hs b/Command/Info.hs
index 5cac295..96b7eb6 100644
--- a/Command/Info.hs
+++ b/Command/Info.hs
@@ -125,7 +125,8 @@ fileInfo file k = showCustom (unwords ["info", file]) $ do
 
 remoteInfo :: Remote -> Annex ()
 remoteInfo r = showCustom (unwords ["info", Remote.name r]) $ do
-	evalStateT (mapM_ showStat (remote_stats r)) emptyStatInfo
+	info <- map (\(k, v) -> simpleStat k (pure v)) <$> Remote.getInfo r
+	evalStateT (mapM_ showStat (remote_stats r ++ info)) emptyStatInfo
 	return True
 
 selStats :: [Stat] -> [Stat] -> Annex [Stat]
@@ -179,16 +180,21 @@ file_stats f k =
 	]
 
 remote_stats :: Remote -> [Stat]
-remote_stats r =
-	[ remote_name r
-	, remote_description r
-	, remote_uuid r
-	, remote_cost r
+remote_stats r = map (\s -> s r)
+	[ remote_name
+	, remote_description
+	, remote_uuid
+	, remote_cost
+	, remote_type
 	]
 
 stat :: String -> (String -> StatState String) -> Stat
 stat desc a = return $ Just (desc, a desc)
 
+-- The json simply contains the same string that is displayed.
+simpleStat :: String -> StatState String -> Stat
+simpleStat desc getval = stat desc $ json id getval
+
 nostat :: Stat
 nostat = return Nothing
 
@@ -209,7 +215,7 @@ showStat s = maybe noop calc =<< s
 		lift . showRaw =<< a
 
 repository_mode :: Stat
-repository_mode = stat "repository mode" $ json id $ lift $
+repository_mode = simpleStat "repository mode" $ lift $
 	ifM isDirect 
 		( return "direct", return "indirect" )
 
@@ -223,32 +229,36 @@ remote_list level = stat n $ nojson $ lift $ do
 	n = showTrustLevel level ++ " repositories"
 	
 dir_name :: FilePath -> Stat
-dir_name dir = stat "directory" $ json id $ pure dir
+dir_name dir = simpleStat "directory" $ pure dir
 
 file_name :: FilePath -> Stat
-file_name file = stat "file" $ json id $ pure file
+file_name file = simpleStat "file" $ pure file
 
 remote_name :: Remote -> Stat
-remote_name r = stat "remote" $ json id $ pure (Remote.name r)
+remote_name r = simpleStat "remote" $ pure (Remote.name r)
 
 remote_description :: Remote -> Stat
-remote_description r = stat "description" $ json id $ lift $
+remote_description r = simpleStat "description" $ lift $
 	Remote.prettyUUID (Remote.uuid r)
 
 remote_uuid :: Remote -> Stat
-remote_uuid r = stat "uuid" $ json id $ pure $
+remote_uuid r = simpleStat "uuid" $ pure $
 	fromUUID $ Remote.uuid r
 
 remote_cost :: Remote -> Stat
-remote_cost r = stat "cost" $ json id $ pure $
+remote_cost r = simpleStat "cost" $ pure $
 	show $ Remote.cost r
 
+remote_type :: Remote -> Stat
+remote_type r = simpleStat "type" $ pure $
+	Remote.typename $ Remote.remotetype r
+
 local_annex_keys :: Stat
 local_annex_keys = stat "local annex keys" $ json show $
 	countKeys <$> cachedPresentData
 
 local_annex_size :: Stat
-local_annex_size = stat "local annex size" $ json id $
+local_annex_size = simpleStat "local annex size" $
 	showSizeKeys <$> cachedPresentData
 
 known_annex_files :: Stat
@@ -256,7 +266,7 @@ known_annex_files = stat "annexed files in working tree" $ json show $
 	countKeys <$> cachedReferencedData
 
 known_annex_size :: Stat
-known_annex_size = stat "size of annexed files in working tree" $ json id $
+known_annex_size = simpleStat "size of annexed files in working tree" $
 	showSizeKeys <$> cachedReferencedData
 
 tmp_size :: Stat
@@ -266,13 +276,13 @@ bad_data_size :: Stat
 bad_data_size = staleSize "bad keys size" gitAnnexBadDir
 
 key_size :: Key -> Stat
-key_size k = stat "size" $ json id $ pure $ showSizeKeys $ foldKeys [k]
+key_size k = simpleStat "size" $ pure $ showSizeKeys $ foldKeys [k]
 
 key_name :: Key -> Stat
-key_name k = stat "key" $ json id $ pure $ key2file k
+key_name k = simpleStat "key" $ pure $ key2file k
 
 bloom_info :: Stat
-bloom_info = stat "bloom filter size" $ json id $ do
+bloom_info = simpleStat "bloom filter size" $ do
 	localkeys <- countKeys <$> cachedPresentData
 	capacity <- fromIntegral <$> lift Command.Unused.bloomCapacity
 	let note = aside $
@@ -305,7 +315,7 @@ transfer_list = stat "transfers in progress" $ nojson $ lift $ do
 		]
 
 disk_size :: Stat
-disk_size = stat "available local disk space" $ json id $ lift $
+disk_size = simpleStat "available local disk space" $ lift $
 	calcfree
 		<$> (annexDiskReserve <$> Annex.getGitConfig)
 		<*> inRepo (getDiskFree . gitAnnexDir)
diff --git a/Remote/Bup.hs b/Remote/Bup.hs
index cc64d6f..4f2ddf3 100644
--- a/Remote/Bup.hs
+++ b/Remote/Bup.hs
@@ -73,6 +73,7 @@ gen r u c gc = do
 		, availability = if bupLocal buprepo then LocallyAvailable else GloballyAvailable
 		, readonly = False
 		, mkUnavailable = return Nothing
+		, getInfo = return [("repo", buprepo)]
 		}
 	return $ Just $ specialRemote' specialcfg c
 		(simplyPrepare $ store this buprepo)
diff --git a/Remote/Ddar.hs b/Remote/Ddar.hs
index 1db482b..d73919b 100644
--- a/Remote/Ddar.hs
+++ b/Remote/Ddar.hs
@@ -70,6 +70,7 @@ gen r u c gc = do
 		, availability = if ddarLocal ddarrepo then LocallyAvailable else GloballyAvailable
 		, readonly = False
 		, mkUnavailable = return Nothing
+		, getInfo = return [("repo", ddarrepo)]
 		}
 	ddarrepo = fromMaybe (error "missing ddarrepo") $ remoteAnnexDdarRepo gc
 	specialcfg = (specialRemoteCfg c)
diff --git a/Remote/Directory.hs b/Remote/Directory.hs
index fa4d027..2e9e013 100644
--- a/Remote/Directory.hs
+++ b/Remote/Directory.hs
@@ -67,7 +67,8 @@ gen r u c gc = do
 			availability = LocallyAvailable,
 			remotetype = remote,
 			mkUnavailable = gen r u c $
-				gc { remoteAnnexDirectory = Just "/dev/null" }
+				gc { remoteAnnexDirectory = Just "/dev/null" },
+			getInfo = return [("directory", dir)]
 		}
   where
 	dir = fromMaybe (error "missing directory") $ remoteAnnexDirectory gc
diff --git a/Remote/External.hs b/Remote/External.hs
index d409724..e907ab0 100644
--- a/Remote/External.hs
+++ b/Remote/External.hs
@@ -68,6 +68,7 @@ gen r u c gc = do
 			remotetype = remote,
 			mkUnavailable = gen r u c $
 				gc { remoteAnnexExternalType = Just "!dne!" }
+			, getInfo = return [("externaltype", externaltype)]
 		}
   where
 	externaltype = fromMaybe (error "missing externaltype") (remoteAnnexExternalType gc)
diff --git a/Remote/GCrypt.hs b/Remote/GCrypt.hs
index fc7718a..995c3e8 100644
--- a/Remote/GCrypt.hs
+++ b/Remote/GCrypt.hs
@@ -121,6 +121,7 @@ gen' r u c gc = do
 		, availability = availabilityCalc r
 		, remotetype = remote
 		, mkUnavailable = return Nothing
+		, getInfo = return $ gitRepoInfo r
 	}
 	return $ Just $ specialRemote' specialcfg c
 		(simplyPrepare $ store this rsyncopts)
diff --git a/Remote/Git.hs b/Remote/Git.hs
index a249f43..50c34a2 100644
--- a/Remote/Git.hs
+++ b/Remote/Git.hs
@@ -159,6 +159,7 @@ gen r u c gc
 			, availability = availabilityCalc r
 			, remotetype = remote
 			, mkUnavailable = unavailable r u c gc
+			, getInfo = return $ gitRepoInfo r

(Diff truncated)
Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_8_841fd94d0f599c71a76fd22b07944366._comment b/doc/bugs/Upload_to_S3_fails_/comment_8_841fd94d0f599c71a76fd22b07944366._comment
new file mode 100644
index 0000000..61e201c
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_8_841fd94d0f599c71a76fd22b07944366._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkvSZ1AFJdY_1FeutZr_KWeqtzjZta1PNE"
+ nickname="Thedward"
+ subject="comment 8"
+ date="2014-10-21T17:47:35Z"
+ content="""
+Additional info: I created both of the related git-annex repositories yesterday via the webapp. Then imported a number of files to each one. Then connected them via xmpp. Then created the S3 remote via the webapp so they could actually share files. I am using an IAM identity for S3 instead of my root access key; it has full S3 access (and data IS showing up in the bucket, so it's not a *simple* permissions problem).
+"""]]

info: When passed the name or uuid of a remote, displays info about that remote.
No per-remote-type info yet.
This commit was sponsored by Stanley Yamane.
diff --git a/CmdLine/Usage.hs b/CmdLine/Usage.hs
index 6e0a1ca..1998a5f 100644
--- a/CmdLine/Usage.hs
+++ b/CmdLine/Usage.hs
@@ -103,6 +103,8 @@ paramSize :: String
 paramSize = "SIZE"
 paramAddress :: String
 paramAddress = "ADDRESS"
+paramItem :: String
+paramItem = "ITEM"
 paramKeyValue :: String
 paramKeyValue = "K=V"
 paramNothing :: String
diff --git a/Command/Info.hs b/Command/Info.hs
index ffa6a59..5cac295 100644
--- a/Command/Info.hs
+++ b/Command/Info.hs
@@ -16,10 +16,11 @@ import Data.Tuple
 import Data.Ord
 
 import Common.Annex
-import qualified Remote
 import qualified Command.Unused
 import qualified Git
 import qualified Annex
+import qualified Remote
+import qualified Types.Remote as Remote
 import Command
 import Utility.DataUnits
 import Utility.DiskFree
@@ -75,7 +76,7 @@ type StatState = StateT StatInfo Annex
 
 cmd :: [Command]
 cmd = [noCommit $ dontCheck repoExists $ withOptions [jsonOption] $
-	command "info" paramPaths seek SectionQuery
+	command "info" (paramOptional $ paramRepeating paramItem) seek SectionQuery
 	"shows information about the specified item or the repository as a whole"]
 
 seek :: CommandSeek
@@ -99,11 +100,15 @@ globalInfo = do
 itemInfo :: String -> Annex ()
 itemInfo p = ifM (isdir p)
 	( dirInfo p
-	, maybe noinfo (fileInfo p) =<< isAnnexLink p
+	, do
+		v <- Remote.byName' p
+		case v of
+			Right r -> remoteInfo r
+			Left _ -> maybe noinfo (fileInfo p) =<< isAnnexLink p
 	)
   where
 	isdir = liftIO . catchBoolIO . (isDirectory <$$> getFileStatus)
-	noinfo = error $ p ++ " is not a directory or an annexed file"
+	noinfo = error $ p ++ " is not a directory or an annexed file or a remote"
 
 dirInfo :: FilePath -> Annex ()
 dirInfo dir = showCustom (unwords ["info", dir]) $ do
@@ -118,6 +123,11 @@ fileInfo file k = showCustom (unwords ["info", file]) $ do
 	evalStateT (mapM_ showStat (file_stats file k)) emptyStatInfo
 	return True
 
+remoteInfo :: Remote -> Annex ()
+remoteInfo r = showCustom (unwords ["info", Remote.name r]) $ do
+	evalStateT (mapM_ showStat (remote_stats r)) emptyStatInfo
+	return True
+
 selStats :: [Stat] -> [Stat] -> Annex [Stat]
 selStats fast_stats slow_stats = do
 	fast <- Annex.getState Annex.fast
@@ -150,7 +160,7 @@ global_slow_stats =
 	]
 dir_fast_stats :: [FilePath -> Stat]
 dir_fast_stats =
-	[ local_dir
+	[ dir_name
 	, const local_annex_keys
 	, const local_annex_size
 	, const known_annex_files
@@ -163,11 +173,19 @@ dir_slow_stats =
 
 file_stats :: FilePath -> Key -> [Stat]
 file_stats f k =
-	[ local_file f
+	[ file_name f
 	, key_size k
 	, key_name k
 	]
 
+remote_stats :: Remote -> [Stat]
+remote_stats r =
+	[ remote_name r
+	, remote_description r
+	, remote_uuid r
+	, remote_cost r
+	]
+
 stat :: String -> (String -> StatState String) -> Stat
 stat desc a = return $ Just (desc, a desc)
 
@@ -204,11 +222,26 @@ remote_list level = stat n $ nojson $ lift $ do
   where
 	n = showTrustLevel level ++ " repositories"
 	
-local_dir :: FilePath -> Stat
-local_dir dir = stat "directory" $ json id $ return dir
+dir_name :: FilePath -> Stat
+dir_name dir = stat "directory" $ json id $ pure dir
+
+file_name :: FilePath -> Stat
+file_name file = stat "file" $ json id $ pure file
+
+remote_name :: Remote -> Stat
+remote_name r = stat "remote" $ json id $ pure (Remote.name r)
+
+remote_description :: Remote -> Stat
+remote_description r = stat "description" $ json id $ lift $
+	Remote.prettyUUID (Remote.uuid r)
+
+remote_uuid :: Remote -> Stat
+remote_uuid r = stat "uuid" $ json id $ pure $
+	fromUUID $ Remote.uuid r
 
-local_file :: FilePath -> Stat
-local_file file = stat "file" $ json id $ return file
+remote_cost :: Remote -> Stat
+remote_cost r = stat "cost" $ json id $ pure $
+	show $ Remote.cost r
 
 local_annex_keys :: Stat
 local_annex_keys = stat "local annex keys" $ json show $
diff --git a/debian/changelog b/debian/changelog
index 6b3b59b..3527753 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,8 @@ git-annex (5.20141014) UNRELEASED; urgency=medium
   * glacier: Fix pipe setup when calling glacier-cli to retrieve an object.
   * info: When run on a single annexed file, displays some info about the 
     file, including its key and size.
+  * info: When passed the name or uuid of a remote, displays info about that
+    remote.
 
  -- Joey Hess <joeyh@debian.org>  Tue, 14 Oct 2014 14:09:24 -0400
 
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index 95d8e14..7df4ecb 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -676,10 +676,12 @@ subdirectories).
   To generate output suitable for the gource visualization program,
   specify `--gource`.
 
-* `info [directory|file ...]`
+* `info [directory|file|remote ...]`
 
   Displays statistics and other information for the specified item,
-  or if none is specified, for the repository as a whole.
+  which can be a directory, or a file, or a remote (specified by name or
+  UUID). When no item is specified, displays statistics and information
+  for the repository as a whole.
 
   When a directory is specified, the file matching options can be used
   to select the files in the directory that are included in the statistics.

Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_7_32685258748a7cdd177e7af2105f128e._comment b/doc/bugs/Upload_to_S3_fails_/comment_7_32685258748a7cdd177e7af2105f128e._comment
new file mode 100644
index 0000000..4d66552
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_7_32685258748a7cdd177e7af2105f128e._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkvSZ1AFJdY_1FeutZr_KWeqtzjZta1PNE"
+ nickname="Thedward"
+ subject="comment 7"
+ date="2014-10-21T17:35:16Z"
+ content="""
+It is running the new style chunking (chunk=1MiB).
+
+It does not appear to resume when it tries again. If I try copying a file to the remote from the command line, it always starts at 0% and dies at some point before 100% even if it has tried to copy that file before.
+"""]]

info: When run on a single annexed file, displays some info about the file, including its key and size.
diff --git a/Command/Info.hs b/Command/Info.hs
index 68ac607..ffa6a59 100644
--- a/Command/Info.hs
+++ b/Command/Info.hs
@@ -1,6 +1,6 @@
 {- git-annex command
  -
- - Copyright 2011 Joey Hess <joey@kitenet.net>
+ - Copyright 2011-2014 Joey Hess <joey@kitenet.net>
  -
  - Licensed under the GNU GPL version 3 or higher.
  -}
@@ -24,6 +24,7 @@ import Command
 import Utility.DataUnits
 import Utility.DiskFree
 import Annex.Content
+import Annex.Link
 import Types.Key
 import Logs.UUID
 import Logs.Trust
@@ -65,6 +66,9 @@ data StatInfo = StatInfo
 	, referencedData :: Maybe KeyData
 	, numCopiesStats :: Maybe NumCopiesStats
 	}
+		
+emptyStatInfo :: StatInfo
+emptyStatInfo = StatInfo Nothing Nothing Nothing
 
 -- a state monad for running Stats in
 type StatState = StateT StatInfo Annex
@@ -72,36 +76,48 @@ type StatState = StateT StatInfo Annex
 cmd :: [Command]
 cmd = [noCommit $ dontCheck repoExists $ withOptions [jsonOption] $
 	command "info" paramPaths seek SectionQuery
-	"shows general information about the annex"]
+	"shows information about the specified item or the repository as a whole"]
 
 seek :: CommandSeek
 seek = withWords start
 
-start :: [FilePath] -> CommandStart
+start :: [String] -> CommandStart
 start [] = do
 	globalInfo
 	stop
 start ps = do
-	mapM_ localInfo =<< filterM isdir ps
+	mapM_ itemInfo ps
 	stop
-  where
-	isdir = liftIO . catchBoolIO . (isDirectory <$$> getFileStatus)
 
 globalInfo :: Annex ()
 globalInfo = do
 	stats <- selStats global_fast_stats global_slow_stats
 	showCustom "info" $ do
-		evalStateT (mapM_ showStat stats) (StatInfo Nothing Nothing Nothing)
+		evalStateT (mapM_ showStat stats) emptyStatInfo
 		return True
 
-localInfo :: FilePath -> Annex ()
-localInfo dir = showCustom (unwords ["info", dir]) $ do
-	stats <- selStats (tostats local_fast_stats) (tostats local_slow_stats)
-	evalStateT (mapM_ showStat stats) =<< getLocalStatInfo dir
+itemInfo :: String -> Annex ()
+itemInfo p = ifM (isdir p)
+	( dirInfo p
+	, maybe noinfo (fileInfo p) =<< isAnnexLink p
+	)
+  where
+	isdir = liftIO . catchBoolIO . (isDirectory <$$> getFileStatus)
+	noinfo = error $ p ++ " is not a directory or an annexed file"
+
+dirInfo :: FilePath -> Annex ()
+dirInfo dir = showCustom (unwords ["info", dir]) $ do
+	stats <- selStats (tostats dir_fast_stats) (tostats dir_slow_stats)
+	evalStateT (mapM_ showStat stats) =<< getDirStatInfo dir
 	return True
   where
 	tostats = map (\s -> s dir)
 
+fileInfo :: FilePath -> Key -> Annex ()
+fileInfo file k = showCustom (unwords ["info", file]) $ do
+	evalStateT (mapM_ showStat (file_stats file k)) emptyStatInfo
+	return True
+
 selStats :: [Stat] -> [Stat] -> Annex [Stat]
 selStats fast_stats slow_stats = do
 	fast <- Annex.getState Annex.fast
@@ -132,19 +148,26 @@ global_slow_stats =
 	, bloom_info
 	, backend_usage
 	]
-local_fast_stats :: [FilePath -> Stat]
-local_fast_stats =
+dir_fast_stats :: [FilePath -> Stat]
+dir_fast_stats =
 	[ local_dir
 	, const local_annex_keys
 	, const local_annex_size
 	, const known_annex_files
 	, const known_annex_size
 	]
-local_slow_stats :: [FilePath -> Stat]
-local_slow_stats =
+dir_slow_stats :: [FilePath -> Stat]
+dir_slow_stats =
 	[ const numcopies_stats
 	]
 
+file_stats :: FilePath -> Key -> [Stat]
+file_stats f k =
+	[ local_file f
+	, key_size k
+	, key_name k
+	]
+
 stat :: String -> (String -> StatState String) -> Stat
 stat desc a = return $ Just (desc, a desc)
 
@@ -184,6 +207,9 @@ remote_list level = stat n $ nojson $ lift $ do
 local_dir :: FilePath -> Stat
 local_dir dir = stat "directory" $ json id $ return dir
 
+local_file :: FilePath -> Stat
+local_file file = stat "file" $ json id $ return file
+
 local_annex_keys :: Stat
 local_annex_keys = stat "local annex keys" $ json show $
 	countKeys <$> cachedPresentData
@@ -206,6 +232,12 @@ tmp_size = staleSize "temporary object directory size" gitAnnexTmpObjectDir
 bad_data_size :: Stat
 bad_data_size = staleSize "bad keys size" gitAnnexBadDir
 
+key_size :: Key -> Stat
+key_size k = stat "size" $ json id $ pure $ showSizeKeys $ foldKeys [k]
+
+key_name :: Key -> Stat
+key_name k = stat "key" $ json id $ pure $ key2file k
+
 bloom_info :: Stat
 bloom_info = stat "bloom filter size" $ json id $ do
 	localkeys <- countKeys <$> cachedPresentData
@@ -296,12 +328,12 @@ cachedReferencedData = do
 			put s { referencedData = Just v }
 			return v
 
--- currently only available for local info
+-- currently only available for directory info
 cachedNumCopiesStats :: StatState (Maybe NumCopiesStats)
 cachedNumCopiesStats = numCopiesStats <$> get
 
-getLocalStatInfo :: FilePath -> Annex StatInfo
-getLocalStatInfo dir = do
+getDirStatInfo :: FilePath -> Annex StatInfo
+getDirStatInfo dir = do
 	fast <- Annex.getState Annex.fast
 	matcher <- Limit.getMatcher
 	(presentdata, referenceddata, numcopiesstats) <-
diff --git a/debian/changelog b/debian/changelog
index c37c303..6b3b59b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ git-annex (5.20141014) UNRELEASED; urgency=medium
     making git-annex not re-exec itself on start on windows, and making the
     test suite on Windows run tests without forking.
   * glacier: Fix pipe setup when calling glacier-cli to retrieve an object.
+  * info: When run on a single annexed file, displays some info about the 
+    file, including its key and size.
 
  -- Joey Hess <joeyh@debian.org>  Tue, 14 Oct 2014 14:09:24 -0400
 
diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn
index 011b6d9..95d8e14 100644
--- a/doc/git-annex.mdwn
+++ b/doc/git-annex.mdwn
@@ -676,17 +676,15 @@ subdirectories).
   To generate output suitable for the gource visualization program,
   specify `--gource`.
 
-* `info [directory ...]`
+* `info [directory|file ...]`
 
-  Displays some statistics and other information, including how much data
-  is in the annex and a list of all known repositories.
+  Displays statistics and other information for the specified item,
+  or if none is specified, for the repository as a whole.
 
-  To only show the data that can be gathered quickly, use `--fast`.
+  When a directory is specified, the file matching options can be used
+  to select the files in the directory that are included in the statistics.
 
-  When a directory is specified, shows a differently formatted info
-  display for that directory. In this mode, all of the matching
-  options can be used to filter the files that will be included in
-  the information.
+  To only show the data that can be gathered quickly, use `--fast`.
 
   For example, suppose you want to run "git annex get .", but
   would first like to see how much disk space that will use.

comment
diff --git a/doc/todo/show_readonly_removable_drives_in_the_webapp/comment_1_c41140289f9b062e96cfd5d9d5382155._comment b/doc/todo/show_readonly_removable_drives_in_the_webapp/comment_1_c41140289f9b062e96cfd5d9d5382155._comment
new file mode 100644
index 0000000..faa49bf
--- /dev/null
+++ b/doc/todo/show_readonly_removable_drives_in_the_webapp/comment_1_c41140289f9b062e96cfd5d9d5382155._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-21T16:33:25Z"
+ content="""
+The webapp only shows drives the user can write to, because
+in general, there are a vast number of mounted things in modern
+OS's that the user would be very puzzled to see listed as removable
+drives. Such as tmpfs and cgroup mount points, and efi boot partitions.
+Complicating the webapp with knowledge to filter such things out would be a
+constantly losing battle.
+
+I guess it would be ok to add a "not listed here?" link in the webapp
+that allowed chosing from a full list or entering the path by hand.
+"""]]

comment
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_4_a20b46a5e9c1c72a484962f3539d3b3e._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_4_a20b46a5e9c1c72a484962f3539d3b3e._comment
new file mode 100644
index 0000000..c46042d
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_4_a20b46a5e9c1c72a484962f3539d3b3e._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2014-10-21T16:31:33Z"
+ content="""
+http://git-annex.branchable.com/install/Linux_standalone/
+"""]]

Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_6_8bc023fca8cedfc517856cdcd20b7f10._comment b/doc/bugs/Upload_to_S3_fails_/comment_6_8bc023fca8cedfc517856cdcd20b7f10._comment
new file mode 100644
index 0000000..ed21bb8
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_6_8bc023fca8cedfc517856cdcd20b7f10._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.96"
+ subject="comment 6"
+ date="2014-10-21T16:31:02Z"
+ content="""
+I need to know if the S3 remote is configured to use the new style chunking feature, and what size chunks it is configured to use. I have already explained how to check that in this thread.
+
+I also need to know if retrying the upload after it fails lets it resume where it left off.
+"""]]

this is either spam, or indistinguishable from spam
diff --git a/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment b/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment
deleted file mode 100644
index b893521..0000000
--- a/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment
+++ /dev/null
@@ -1,9 +0,0 @@
-[[!comment format=mdwn
- username="debryd"
- ip="199.195.193.99"
- subject="comment 2"
- date="2014-10-21T01:39:10Z"
- content="""
-dropbear designed to be simple ssh client, it has many support tough.
-<http://punzme.com>
-"""]]
diff --git a/doc/users/debryd.mdwn b/doc/users/debryd.mdwn
deleted file mode 100644
index 54e7726..0000000
--- a/doc/users/debryd.mdwn
+++ /dev/null
@@ -1,2 +0,0 @@
-I loved to learn about everything as long as it is learnable.
-<http://punzme.com>

Added a comment
diff --git a/doc/bugs/Upload_to_S3_fails_/comment_5_020c055f6c06860dda27c1debb123742._comment b/doc/bugs/Upload_to_S3_fails_/comment_5_020c055f6c06860dda27c1debb123742._comment
new file mode 100644
index 0000000..368d285
--- /dev/null
+++ b/doc/bugs/Upload_to_S3_fails_/comment_5_020c055f6c06860dda27c1debb123742._comment
@@ -0,0 +1,43 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkvSZ1AFJdY_1FeutZr_KWeqtzjZta1PNE"
+ nickname="Thedward"
+ subject="comment 5"
+ date="2014-10-21T04:10:16Z"
+ content="""
+
+I am experiencing similar behavior on Ubuntu Trusty (x86_64) using a prebuilt Linux release:
+
+    Linux hostname 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
+
+    Distributor ID:	Ubuntu
+    Description:	Ubuntu 14.04.1 LTS
+    Release:	14.04
+    Codename:	trusty
+
+    git-annex version: 5.20141016-g26b38fd
+    build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA CryptoHash
+    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
+    remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
+
+Copying files to S3 consistently fails both from the command line and via the assistant:
+
+    [2014-10-20 22:34:32 CDT] read: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+    [2014-10-20 22:34:32 CDT] read: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+    [2014-10-20 22:34:32 CDT] read: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..78e9b6b85f3b453d8ed4f66f63ff09e03ce13d06\",\"-n1\",\"--pretty=%H\"]
+    [2014-10-20 22:34:32 CDT] read: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..658720ba59a2fefee89c908b972971ca901f84dc\",\"-n1\",\"--pretty=%H\"]
+    [2014-10-20 22:34:32 CDT] chat: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
+    [2014-10-20 22:34:32 CDT] read: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"ls-files\",\"--cached\",\"-z\",\"--\",\"storage/data.bin\"]
+    [2014-10-20 22:34:32 CDT] chat: git [\"--git-dir=/home/user/git-annex/.git\",\"--work-tree=/home/user/git-annex\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
+    copy storage/data.bin (gpg) (checking S3git-annex...) (to S3git-annex...) 
+    0%            0.0 B/s 0s[2014-10-20 22:34:33 CDT] chat: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--batch\",\"--passphrase-fd\",\"14\",\"--symmetric\",\"--force-mdc\",\"--no-textmode\"]
+    8%         512.0KB/s 21s[2014-10-20 22:34:35 CDT] chat: gpg [\"--batch\",\"--no-tty\",\"--use-agent\",\"--quiet\",\"--trust-model\",\"always\",\"--batch\",\"--passphrase-fd\",\"14\",\"--symmetric\",\"--force-mdc\",\"--no-textmode\"]
+    8%         528.0KB/s 21s
+      ErrorClosed
+    failed                  
+    git-annex: copy: 1 failed
+
+Two files (out of several hundred) have succeeded.
+
+Any ideas?
+
+"""]]

Added a comment
diff --git a/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment b/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment
new file mode 100644
index 0000000..b893521
--- /dev/null
+++ b/doc/design/assistant/blog/day_187__porting_utilities/comment_2_e84a523c19be056eb9e91b475373ea3d._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="debryd"
+ ip="199.195.193.99"
+ subject="comment 2"
+ date="2014-10-21T01:39:10Z"
+ content="""
+dropbear designed to be simple ssh client, it has many support tough.
+<http://punzme.com>
+"""]]

diff --git a/doc/users/debryd.mdwn b/doc/users/debryd.mdwn
new file mode 100644
index 0000000..54e7726
--- /dev/null
+++ b/doc/users/debryd.mdwn
@@ -0,0 +1,2 @@
+I loved to learn about everything as long as it is learnable.
+<http://punzme.com>

Added a comment: autobuild
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_3_1b49cd66a612bb46da5b73c83ab14688._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_3_1b49cd66a612bb46da5b73c83ab14688._comment
new file mode 100644
index 0000000..ccdd948
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_3_1b49cd66a612bb46da5b73c83ab14688._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkck-Tokgfh_1Fwh6pkl69xPA_dYUgA4Tg"
+ nickname="Benjamin"
+ subject="autobuild"
+ date="2014-10-20T22:39:25Z"
+ content="""
+Okay, where do I get the newest build? I cannot find a link to a packaged file at http://downloads.kitenet.net/git-annex/autobuild/amd64/
+
+I'd rather not build it from master myself, as all the Haskell dependencies are not well supported on Arch linux. Thats why I switched from the git-annex package to the git-annex-bin package in AUR in the first place.
+
+"""]]

Added a comment
diff --git a/doc/todo/read-only_removable_drives/comment_7_16c8652d38ae57db4ed1860a4733a18b._comment b/doc/todo/read-only_removable_drives/comment_7_16c8652d38ae57db4ed1860a4733a18b._comment
new file mode 100644
index 0000000..121d676
--- /dev/null
+++ b/doc/todo/read-only_removable_drives/comment_7_16c8652d38ae57db4ed1860a4733a18b._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://id.koumbit.net/anarcat"
+ ip="72.0.72.144"
+ subject="comment 7"
+ date="2014-10-20T20:04:09Z"
+ content="""
+alright, i documented those issues more distinctively in the summary. hopefully that will clear things up a little. i still need to do some work to reproduce two of those issues, maybe a lot of this is related to the upgrade problem mentionned in [[bugs/annex_get_fails_from_read-only_filesystem/]].
+"""]]

try to more exhaustively describe the problems here
diff --git a/doc/todo/read-only_removable_drives.mdwn b/doc/todo/read-only_removable_drives.mdwn
index b899af0..9dfc356 100644
--- a/doc/todo/read-only_removable_drives.mdwn
+++ b/doc/todo/read-only_removable_drives.mdwn
@@ -7,3 +7,11 @@ Otherwise, I would welcome advice on how to fix this problem without doing a `su
 > Workaround: `sudo setfacl -R -m u:anarcat:rwx /media/foo/annex`
 
 Note: this seems like there was at least one dupe opened about this in [[bugs/annex_get_fails_from_read-only_filesystem]].
+
+I concede that this may refer to many different issues, so here's a short inventory of issues with readonly repositories:
+
+* trying to add an external readonly drive through the webapp: not detected: see [[todo/show_readonly_removable_drives_in_the_webapp]]
+* trying to add an external readonly drive through the commandline: fails to sync? - couldn't reproduce locally, i will need to go back to that machine for more tests :(
+* trying to add a ssh readonly remote through the webapp: fails to sync and considers the remote "git-only" (which also fails) - couldn't reproduce locally either - maybe this is related to the upgrade option in [[bugs/annex_get_fails_from_read-only_filesystem/]] 
+* trying to add a local readonly remote through the webapp: fails to add, see [[bugs/cannot_add_local_readonly_repo_through_the_webapp]]
+* failing to sync with a readonly remote of a different version: still an issue, see [[bugs/annex_get_fails_from_read-only_filesystem/]] - at least content should be syncable even if the upgrade fails (think of failure conditions such as broken hard drives that are put in readonly mode or ddrescue'd disk images)

yet another
diff --git a/doc/bugs/cannot_add_local_readonly_repo_through_the_webapp.mdwn b/doc/bugs/cannot_add_local_readonly_repo_through_the_webapp.mdwn
new file mode 100644
index 0000000..9b1f726
--- /dev/null
+++ b/doc/bugs/cannot_add_local_readonly_repo_through_the_webapp.mdwn
@@ -0,0 +1,98 @@
+### Please describe the problem.
+
+A readonly repository that I can add fine on the commandline (and sync content from) cannot be added through the webapp.
+
+### What steps will reproduce the problem?
+
+Say I have a readonly (owned by root) repository in `~/test/a` and I create a `~/test/b` (owned by my user). In the webapp, when to add `/home/anarcat/test/a` as a "local repository" (`Add another local repository`) to the `~/test/b` repo, it fails when i enter that path, with "Cannot write a repository there." I obviously can't sync content from there then.
+
+This works on the commandline, although with warnings.
+
+### What version of git-annex are you using? On what operating system?
+
+Version: 5.20140927 
+Build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA CryptoHash
+
+Debian Jessie.
+
+### Please provide any additional information below.
+
+Here's the transcript of the commandline equivalent:
+
+~~~
+anarcat@marcos:test$ git init a
+Dépôt Git vide initialisé dans /home/anarcat/test/a/.git/
+anarcat@marcos:test$ git init b
+Dépôt Git vide initialisé dans /home/anarcat/test/b/.git/
+anarcat@marcos:test$ cd a
+anarcat@marcos:a$ git annex init
+init  ok
+(Recording state in git...)
+anarcat@marcos:a$ echo hellow world > README
+anarcat@marcos:a$ git annex add README
+add README ok
+(Recording state in git...)
+anarcat@marcos:a$ git commit -m"test repo a"
+[master (commit racine) 3ece2a1] test repo a
+ 1 file changed, 1 insertion(+)
+ create mode 120000 README
+anarcat@marcos:a$ cd ../ ^C
+anarcat@marcos:a$ sudo chown -R root .
+[sudo] password for anarcat:
+Sorry, try again.
+[sudo] password for anarcat:
+anarcat@marcos:a$ cd ../b
+anarcat@marcos:b$ git annex init
+init  ok
+(Recording state in git...)
+anarcat@marcos:b$ git remote add a ../a
+anarcat@marcos:b$ git annex sync a
+commit  ok
+pull a
+warning: no common commits
+remote: Décompte des objets: 13, fait.
+remote: Compression des objets: 100% (9/9), fait.
+remote: Total 13 (delta 1), reused 0 (delta 0)
+Dépaquetage des objets: 100% (13/13), fait.
+Depuis ../a
+ * [nouvelle branche] git-annex  -> a/git-annex
+ * [nouvelle branche] master     -> a/master
+
+
+merge: refs/remotes/a/synced/master - not something we can merge
+failed
+(merging a/git-annex into git-annex...)
+(Recording state in git...)
+push a
+Décompte des objets: 8, fait.
+Delta compression using up to 2 threads.
+Compression des objets: 100% (6/6), fait.
+Écriture des objets: 100% (8/8), 819 bytes | 0 bytes/s, fait.
+Total 8 (delta 1), reused 0 (delta 0)
+remote: error: insufficient permission for adding an object to repository database objects
+remote: fatal: failed to write object
+error: unpack failed: unpack-objects abnormal exit
+To ../a
+ ! [remote rejected] git-annex -> synced/git-annex (unpacker error)
+ ! [remote rejected] master -> synced/master (unpacker error)
+error: impossible de pousser des références vers '../a'
+
+  Pushing to a failed.
+
+  (non-fast-forward problems can be solved by setting receive.denyNonFastforwards to false in the remote's git config)
+failed
+git-annex: sync: 2 failed
+anarcat@marcos:b$ ls
+README
+anarcat@marcos:b$ git annex copy --from a
+copy README (from a...) ok
+(Recording state in git...)
+anarcat@marcos:b$ ls -al
+total 16K
+drwxr-xr-x 3 anarcat anarcat 4096 oct.  20 15:36 .
+drwxr-xr-x 4 anarcat anarcat 4096 oct.  20 15:35 ..
+drwxr-xr-x 9 anarcat anarcat 4096 oct.  20 15:36 .git
+lrwxrwxrwx 1 anarcat anarcat  180 oct.  20 15:36 README -> .git/annex/objects/wz/Zq/SHA256E-s13--8c083c6897455257dfbace7a9012d92ca8ebfb6e6ebe8acddc6dfa8fc81226ed/SHA256E-s13--8c083c6897455257dfbace7a9012d92ca8ebfb6e6ebe8acddc6dfa8fc81226ed
+~~~
+
+This is part of the [[todo/read-only_removable_drives/]] series. --[[anarcat]]

fork off [[todo/read-only_removable_drives/]]
diff --git a/doc/todo/show_readonly_removable_drives_in_the_webapp.mdwn b/doc/todo/show_readonly_removable_drives_in_the_webapp.mdwn
new file mode 100644
index 0000000..e0e570f
--- /dev/null
+++ b/doc/todo/show_readonly_removable_drives_in_the_webapp.mdwn
@@ -0,0 +1,15 @@
+Coming from [[todo/read-only_removable_drives/]], this is use case 1: use inserts an `ext` formatted filesystem that he built at home (so files are owned by uid `1000`)  in the office computer (where he is uid `1001`). Now, this is a limitation of UNIX-style removable drives, admittedly, but I would expect to be able to sync "down" from the hard drives to copy the contents locally.
+
+So in short, expected behavior:
+
+1. insert the drive
+2. drive is shown in the webapp menu
+3. add the drive as a remote for the local repo
+4. sync the content from the drive to the local repo
+
+Actual behavior:
+
+1. insert the drive
+2. drive is not shown in the webapp menu
+
+--[[anarcat]]

glacier: Fix pipe setup when calling glacier-cli to retrieve an object.
diff --git a/Remote/Glacier.hs b/Remote/Glacier.hs
index ba3cc55..70bcec3 100644
--- a/Remote/Glacier.hs
+++ b/Remote/Glacier.hs
@@ -141,7 +141,10 @@ retrieve r k sink = go =<< glacierEnv c u
 		]
 	go Nothing = error "cannot retrieve from glacier"
 	go (Just e) = do
-		let cmd = (proc "glacier" (toCommand params)) { env = Just e }
+		let cmd = (proc "glacier" (toCommand params))
+			{ env = Just e
+			, std_out = CreatePipe
+			}
 		(_, Just h, _, pid) <- liftIO $ createProcess cmd
 		-- Glacier cannot store empty files, so if the output is
 		-- empty, the content is not available yet.
diff --git a/debian/changelog b/debian/changelog
index 2729f44..c37c303 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ git-annex (5.20141014) UNRELEASED; urgency=medium
     for inability to manipulate the environment on windows. This includes
     making git-annex not re-exec itself on start on windows, and making the
     test suite on Windows run tests without forking.
+  * glacier: Fix pipe setup when calling glacier-cli to retrieve an object.
 
  -- Joey Hess <joeyh@debian.org>  Tue, 14 Oct 2014 14:09:24 -0400
 
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_1_5a4e37fef629e07dce6b83ae311d1b03._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_1_5a4e37fef629e07dce6b83ae311d1b03._comment
new file mode 100644
index 0000000..736457f
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_1_5a4e37fef629e07dce6b83ae311d1b03._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-20T18:54:43Z"
+ content="""
+Wow, the code seems to neglect to actually set up a pipe from glacier-cli's
+stdout. It seems this broke quite a while ago, in
+[[!commit fb19d56476bb6eb5aa4d794a10199adb267d5870]] and nobody noticed.
+
+I have committed what should be a fix, but it's pretty hard for me to test
+this. Can you please either test the current daily autobuild for linux
+amd64 (should be ready about 15 minutes after I post this comment), or
+build git-annex from master and test?
+"""]]
diff --git a/doc/bugs/get_from_glacier_fails_too_early/comment_2_da065d367d0a3c91e4957f588f36dc67._comment b/doc/bugs/get_from_glacier_fails_too_early/comment_2_da065d367d0a3c91e4957f588f36dc67._comment
new file mode 100644
index 0000000..2afe601
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early/comment_2_da065d367d0a3c91e4957f588f36dc67._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""creds"""
+ date="2014-10-20T19:09:28Z"
+ content="""
+Since you are using gpg encryption, your repository may have
+[[upgrades/insecure_embedded_creds]]. Strongly suggest you check if it
+does.
+"""]]

comment
diff --git a/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_3_be2c594bc1d162cfb1acc3a01fc284f2._comment b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_3_be2c594bc1d162cfb1acc3a01fc284f2._comment
new file mode 100644
index 0000000..393cd44
--- /dev/null
+++ b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_3_be2c594bc1d162cfb1acc3a01fc284f2._comment
@@ -0,0 +1,7 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 3"""
+ date="2014-10-20T18:53:31Z"
+ content="""
+git annex drop --auto --from server
+"""]]

note
diff --git a/doc/tips/deleting_unwanted_files.mdwn b/doc/tips/deleting_unwanted_files.mdwn
index a6e70e3..8c09b42 100644
--- a/doc/tips/deleting_unwanted_files.mdwn
+++ b/doc/tips/deleting_unwanted_files.mdwn
@@ -29,6 +29,9 @@ If you're using the git-annex assistant, you don't normally need to worry about
 
 You have a file. You want that file to immediately vanish from the face of the earth to the best of your abilities.
 
+Note that, since git-annex deduplicates files by default, any files with
+the same content will be removed by these commands.
+
 1. `git annex drop --force file`
 2. `git annex whereis file`
 3. `git annex drop --force file --from $repo` repeat for each repository listed by the whereis command

comments
diff --git a/doc/forum/ARM_build_on_Zyxel_NAS/comment_1_38f38755c0afd76a2b968836fec395e8._comment b/doc/forum/ARM_build_on_Zyxel_NAS/comment_1_38f38755c0afd76a2b968836fec395e8._comment
new file mode 100644
index 0000000..02d2716
--- /dev/null
+++ b/doc/forum/ARM_build_on_Zyxel_NAS/comment_1_38f38755c0afd76a2b968836fec395e8._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="Joey"
+ subject="""comment 1"""
+ date="2014-10-20T15:11:49Z"
+ content="""
+The git-annex arm build is built using the libc from Debian stable,
+which needs a newer version of the Linux kerenl than is on your device.
+
+It would be possible to build git-annex against an older libc, but
+not easily, which is why I don't.
+"""]]
diff --git a/doc/forum/Default_annex.largefiles/comment_1_74a3ad2388e41f1ff17f64a00485a35a._comment b/doc/forum/Default_annex.largefiles/comment_1_74a3ad2388e41f1ff17f64a00485a35a._comment
new file mode 100644
index 0000000..d57e4f7
--- /dev/null
+++ b/doc/forum/Default_annex.largefiles/comment_1_74a3ad2388e41f1ff17f64a00485a35a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-20T15:26:35Z"
+ content="""
+The default is to treat all files as "large", so any file it sees
+should be added, except for those that are `.gitignored`.
+"""]]
diff --git a/doc/forum/Git_annex_hangs/comment_5_5fd749f92343079b3916a4d32ddf39c7._comment b/doc/forum/Git_annex_hangs/comment_5_5fd749f92343079b3916a4d32ddf39c7._comment
new file mode 100644
index 0000000..892f2ab
--- /dev/null
+++ b/doc/forum/Git_annex_hangs/comment_5_5fd749f92343079b3916a4d32ddf39c7._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 5"""
+ date="2014-10-20T15:28:01Z"
+ content="""
+Adding the files will take as long as it takes to read and hash 
+the conents of those files from disk. If that's too slow, `--backend=WORM`
+will bypass the hashing, so it will take seconds.
+
+Time required to sync files depends on the bandwidth to wherever it's
+syncing with, obviously.
+"""]]
diff --git a/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_3dec369405e6b6a4a6e5121546c03712._comment b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_3dec369405e6b6a4a6e5121546c03712._comment
new file mode 100644
index 0000000..c6d3f9d
--- /dev/null
+++ b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_3dec369405e6b6a4a6e5121546c03712._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-20T15:29:41Z"
+ content="""
+If you use `git annex sync --content`, it will do a full sync,
+including uploading any necessary files to the transfer repo,
+downloading any files that are on the transfer repo, and
+dropping files from the transfer repo once they've been
+transferred to the client repos.
+"""]]
diff --git a/doc/forum/git-annex_vicfg_preferred_content_settings_are_not_being_saved/comment_4_55c52c45f3aaddfb63a1f53efe2ee582._comment b/doc/forum/git-annex_vicfg_preferred_content_settings_are_not_being_saved/comment_4_55c52c45f3aaddfb63a1f53efe2ee582._comment
new file mode 100644
index 0000000..0e73c48
--- /dev/null
+++ b/doc/forum/git-annex_vicfg_preferred_content_settings_are_not_being_saved/comment_4_55c52c45f3aaddfb63a1f53efe2ee582._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 4"""
+ date="2014-10-20T15:40:38Z"
+ content="""
+Right. In the meantime, I've fixed the behavior of vicfg when deleting
+lines, so it resets them to the default automatically.
+"""]]
diff --git a/doc/forum/git_annex_sync:_only_git-annex/comment_1_2be68ed36a1e6bfc896d5aea9463d3c7._comment b/doc/forum/git_annex_sync:_only_git-annex/comment_1_2be68ed36a1e6bfc896d5aea9463d3c7._comment
new file mode 100644
index 0000000..bf90184
--- /dev/null
+++ b/doc/forum/git_annex_sync:_only_git-annex/comment_1_2be68ed36a1e6bfc896d5aea9463d3c7._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-20T15:19:13Z"
+ content="""
+Sounds like you should just use normal `git push`/`git pull` commands.
+Works fine with git-annex. 
+
+Just be sure to include the `git-annex` branch in your pushes.
+Eg, `git push origin master git-annex`
+
+You'll probably want to run `git annex merge` after pulling, to merge the
+local and remote git-annex branches.
+"""]]
diff --git a/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_8_dcc3f2c6d55006776610e8d770b61d12._comment b/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_8_dcc3f2c6d55006776610e8d770b61d12._comment
new file mode 100644
index 0000000..35983e8
--- /dev/null
+++ b/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_8_dcc3f2c6d55006776610e8d770b61d12._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 8"""
+ date="2014-10-20T15:25:13Z"
+ content="""
+@Torkaly just `git pull` as usual, and then run `git annex merge`
+to auto-merge the git-anne branches. Then `git push origin git-annex`
+to push the git-annex branch.
+"""]]
diff --git a/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__/comment_1_4aaf93801119b36a01e452c7bb0fc7e9._comment b/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__/comment_1_4aaf93801119b36a01e452c7bb0fc7e9._comment
new file mode 100644
index 0000000..86cd83d
--- /dev/null
+++ b/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__/comment_1_4aaf93801119b36a01e452c7bb0fc7e9._comment
@@ -0,0 +1,18 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2014-10-20T15:33:02Z"
+ content="""
+Well, are there any files in your repository (outside .git) that
+are still symlinks to content in .git? If not, you know that
+every file in the repository's working tree has been unannexed
+ok.
+
+The remaining files in .git/annex/objects are not unused, so some branch or tag
+must refer to those files.
+
+You might try running `git log --stat -S'KEY'`
+where KEY is the basename name of one of the files in .git/annex/objects.
+This will find commits to the repo that refer to that object, so you'll
+know where it was used and what filename corresponded to it.
+"""]]

Added a comment
diff --git a/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_b8f3c09b470d99578a4a17064498dd39._comment b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_b8f3c09b470d99578a4a17064498dd39._comment
new file mode 100644
index 0000000..51a473e
--- /dev/null
+++ b/doc/forum/How_to_work_with_transfer_repos_manually__63__/comment_1_b8f3c09b470d99578a4a17064498dd39._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9SYh6N-JUMkYkW4aOk55zC3Vr9KonDV4"
+ nickname="Florian"
+ subject="comment 1"
+ date="2014-10-20T10:51:16Z"
+ content="""
+Ok, git annex copy --to server --auto and git annex get on the receiver did the trick.
+
+But how can I drop files from the transfer server that both clients have? I tried git annex drop . or git annex drop --auto . but it just did nothing.
+
+Thx!
+"""]]

despam
This is either spam of some kind, or offtopic.
diff --git a/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment b/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment
deleted file mode 100644
index d8ead6a..0000000
--- a/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment
+++ /dev/null
@@ -1,8 +0,0 @@
-[[!comment format=mdwn
- username="bardy"
- ip="2a02:2f07:d28f:ffff::50f:37e9"
- subject="remove dublicate files"
- date="2014-10-17T06:04:54Z"
- content="""
-DuplicateFiles Deleter is another effective tool, and it's fast!
-"""]]

diff --git a/doc/bugs/fatal:_Cannot_handle_files_this_big.mdwn b/doc/bugs/fatal:_Cannot_handle_files_this_big.mdwn
new file mode 100644
index 0000000..7272bfc
--- /dev/null
+++ b/doc/bugs/fatal:_Cannot_handle_files_this_big.mdwn
@@ -0,0 +1,96 @@
+### Please describe the problem.
+
+Syncing a 20GB video file causes this error. I have no problems with 8GB files. 
+
+### What steps will reproduce the problem?
+
+See additional info
+
+### What version of git-annex are you using? On what operating system?
+
+git-annex version: 5.20140920-gb0c4300
+build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV DNS Feeds Quvi TDFA CryptoHash
+key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
+remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
+local repository version: 5
+supported repository version: 5
+upgrade supported from repository versions: 2 3 4
+
+git version 1.9.4.msysgit.2
+
+Windows 7 64bit 
+
+### Please provide any additional information below.
+
+[[!format sh """
+
+Z:\>git clone L:\repositories\bigFilesTest.git-annex
+Cloning into 'bigFilesTest.git-annex'...
+done.
+
+Z:\>cd bigFilesTest.git-annex
+
+Z:\bigFilesTest.git-annex>git annex init "cloned"
+init cloned
+  Detected a filesystem without fifo support.
+
+  Disabling ssh connection caching.
+
+  Detected a crippled filesystem.
+
+  Enabling direct mode.
+ok
+(Recording state in git...)
+
+Z:\bigFilesTest.git-annex>git annex add test20GBVideo.mkv
+add test20GBVideo.mkv ok
+(Recording state in git...)
+
+Z:\bigFilesTest.git-annex>git annex sync --debug
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","git-annex"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--hash","refs/heads/git-annex"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/git-annex..54de336a3423f7f8f72f897effd29f952534c24e","-n1","--pretty=%H"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/git-annex..53cfcf38b40247b3992b6007336b2c915a945ad4","-n1","--pretty=%H"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] chat: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","cat-file","--batch"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["config","--null","--list"]
+commit  [2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","ls-files","--stage","-z","--others","--exclude-standard","--","Z:\\bigFilesTest.git-annex"]
+[2014-10-18 15:39:02 Mitteleuropäische Sommerzeit] chat: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","cat-file","--batch"]
+(Recording state in git...)
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","add","-f","test20GBVideo.mkv"]
+fatal: Cannot handle files this big
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--head"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","diff-index","-z","--raw","--no-renames","-l0","--cached","HEAD"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","symbolic-ref","HEAD"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--hash","refs/heads/annex/direct/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","write-tree"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","rev-parse","b12e8477242df97be13c1395db143f860ce8e895:"]
+ok
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","symbolic-ref","HEAD"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","refs/heads/annex/direct/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--verify","-q","refs/heads/synced/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/annex/direct/master..refs/heads/synced/master","-n1","--pretty=%H"]
+pull origin
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","fetch","origin"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--verify","-q","refs/remotes/origin/annex/direct/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--verify","-q","refs/remotes/origin/synced/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/synced/master..refs/remotes/origin/synced/master","-n1","--pretty=%H"]
+ok
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","git-annex"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--hash","refs/heads/git-annex"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/git-annex..54de336a3423f7f8f72f897effd29f952534c24e","-n1","--pretty=%H"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/heads/git-annex..53cfcf38b40247b3992b6007336b2c915a945ad4","-n1","--pretty=%H"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","branch","-f","synced/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","branch","-f","master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--verify","-q","refs/remotes/origin/synced/master"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/remotes/origin/synced/master..refs/heads/synced/master","-n1","--pretty=%H"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","show-ref","--verify","-q","refs/remotes/origin/git-annex"]
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","log","refs/remotes/origin/git-annex..git-annex","-n1","--pretty=%H"]
+push origin
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] call: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","push","origin","+git-annex:synced/git-annex","annex/direct/master:synced/master"]
+Everything up-to-date
+[2014-10-18 15:39:03 Mitteleuropäische Sommerzeit] read: git ["--git-dir=Z:\\bigFilesTest.git-annex\\.git","--work-tree=Z:\\bigFilesTest.git-annex","-c","core.bare=false","push","origin","master"]
+ok
+
+
+
+"""]]

diff --git a/doc/forum/git_annex_sync:_only_git-annex.mdwn b/doc/forum/git_annex_sync:_only_git-annex.mdwn
new file mode 100644
index 0000000..84ae140
--- /dev/null
+++ b/doc/forum/git_annex_sync:_only_git-annex.mdwn
@@ -0,0 +1,3 @@
+Hi,
+
+i have an already existing git repository with a branch (*master*) and i added git annex to it (*git annex init*). Now i want to synchronise the file tracking information with annex through *git annex sync*, but keep the master branch unsynchronised (i want push/pull it manually as there are not only annexed files but also code). What is the best approach for my setup?

Added a comment
diff --git a/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_7_15d918ededb5b8375b0ca13d0b3523ff._comment b/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_7_15d918ededb5b8375b0ca13d0b3523ff._comment
new file mode 100644
index 0000000..1ca6b80
--- /dev/null
+++ b/doc/forum/help_running_git-annex_on_top_of_existing_repo/comment_7_15d918ededb5b8375b0ca13d0b3523ff._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlog_5wIICaMcrKTexlFNA6IO6UTp323aE"
+ nickname="Torkaly"
+ subject="comment 7"
+ date="2014-10-17T11:00:06Z"
+ content="""
+Is there a way just to sync *git-annex* branch with the *git annex sync* command? As we have an already existing git branch and want to push/pull *master* manually.
+"""]]

Added a comment: remove dublicate files
diff --git a/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment b/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment
new file mode 100644
index 0000000..d8ead6a
--- /dev/null
+++ b/doc/tips/finding_duplicate_files/comment_12_6463f106eeae3a5372eb6a2860d6b8e7._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="bardy"
+ ip="2a02:2f07:d28f:ffff::50f:37e9"
+ subject="remove dublicate files"
+ date="2014-10-17T06:04:54Z"
+ content="""
+DuplicateFiles Deleter is another effective tool, and it's fast!
+"""]]

Added a comment
diff --git a/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_72d7811990e78fba0b7fc2e1c7ee515f._comment b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_72d7811990e78fba0b7fc2e1c7ee515f._comment
new file mode 100644
index 0000000..9a0f288
--- /dev/null
+++ b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_72d7811990e78fba0b7fc2e1c7ee515f._comment
@@ -0,0 +1,15 @@
+[[!comment format=mdwn
+ username="htun"
+ ip="5.104.224.15"
+ subject="comment 1"
+ date="2014-10-17T04:57:08Z"
+ content="""
+
+
+Here is what the file is looking for symlink 
+.git/annex/objects/MF/kG/SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk/SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk
+
+
+and here is what is in the objects SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk/SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk.map  
+
+"""]]

removed
diff --git a/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment
deleted file mode 100644
index 0b648b7..0000000
--- a/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment
+++ /dev/null
@@ -1,12 +0,0 @@
-[[!comment format=mdwn
- username="htun"
- ip="5.104.224.15"
- subject="comment 1"
- date="2014-10-17T04:55:01Z"
- content="""
-Here is what the file is looking for symlink
-.git/annex/objects/j8/33/SHA256E-s2867305--d68e2b6ea260aabb10~a260aabb1098f80a05e1e58d594c252deb3b4ac4247d37fb18704ab2.apk
-
-and here is what is in the objects
-SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk
-"""]]

Added a comment
diff --git a/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment
new file mode 100644
index 0000000..0b648b7
--- /dev/null
+++ b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx/comment_1_e4b6d5028d4948d133949629c438801a._comment
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="htun"
+ ip="5.104.224.15"
+ subject="comment 1"
+ date="2014-10-17T04:55:01Z"
+ content="""
+Here is what the file is looking for symlink
+.git/annex/objects/j8/33/SHA256E-s2867305--d68e2b6ea260aabb10~a260aabb1098f80a05e1e58d594c252deb3b4ac4247d37fb18704ab2.apk
+
+and here is what is in the objects
+SHA256E-s1589297--0ec542aabec66b1877699ef27549fe355339224680d7923078d03f375028fca1.apk
+"""]]

diff --git a/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx.mdwn b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx.mdwn
new file mode 100644
index 0000000..4f144d5
--- /dev/null
+++ b/doc/forum/Git-Annex_Android_sync_files_are_missing_on_Linuxx.mdwn
@@ -0,0 +1,4 @@
+Hi
+I created shares between Linux and Android(using nightly 4.4). I used Assistant on both. It seems like the files from Android to Linux are all missing, at least the symlinks are broken maybe. However files from Linux to Android are fine.
+
+thanks

formating, activate email comments
diff --git a/doc/bugs/get_from_glacier_fails_too_early.mdwn b/doc/bugs/get_from_glacier_fails_too_early.mdwn
index 0612caa..82594c1 100644
--- a/doc/bugs/get_from_glacier_fails_too_early.mdwn
+++ b/doc/bugs/get_from_glacier_fails_too_early.mdwn
@@ -1,6 +1,7 @@
 ### Please describe the problem.
 
-In order to test the integrity of my file backup on glacier, I initiated get of a single file from glacier via:
+In order to test the integrity of my file backup on glacier,
+I initiated get of a single file from glacier via:
 
     $ git annex get --from=glacier localdir/myfile.jpg
 
@@ -26,7 +27,10 @@ git-annex: get: 1 failed
 [ben@voyagerS9 annex]$
 """]]
 
-The command immediately fails after entering the gpg passphrase, releasing the shell. But in the background the glacier-cli is still running, downloads the file from Amazon and then dumps the gpg encrypted file content into the terminal. (4 MB of binary character garbage on the screen)
+The command immediately fails after entering the gpg passphrase, releasing the shell.
+But in the background the glacier-cli is still running, downloads the file from Amazon
+and then dumps the gpg encrypted file content into the terminal.
+(4 MB of binary character garbage on the screen)
 
 git annex should not fail so early and wait until the data is coming in order to pipe it into gpg.
 
@@ -48,7 +52,8 @@ libgcrypt 1.6.2
 
 ### Possibly related information about the annexed repo and its history
 The file was uploaded sometime earlier this year with a different version of git annex:  Older source package for Arch Linux with Haskell packages from the Arch haskell repos.
-The special glacier remote was initially set up with an old gpg key (hybrid encryption), which is still in my keychain but has expired. I exchanged the Key with a new one by
+
+The special glacier remote was initially set up with an old gpg key (hybrid encryption), which is still in my keychain but has expired. I exchanged the key with a new one by
 
     $ git annex enableremote glacier keyid+=NEWKEY keyid-=OLDKEY
 

diff --git a/doc/bugs/get_from_glacier_fails_too_early.mdwn b/doc/bugs/get_from_glacier_fails_too_early.mdwn
new file mode 100644
index 0000000..0612caa
--- /dev/null
+++ b/doc/bugs/get_from_glacier_fails_too_early.mdwn
@@ -0,0 +1,64 @@
+### Please describe the problem.
+
+In order to test the integrity of my file backup on glacier, I initiated get of a single file from glacier via:
+
+    $ git annex get --from=glacier localdir/myfile.jpg
+
+A check with
+
+    $ glacier job list
+
+confirmed, that a job was in progress.
+
+Then after a couple hours wait the job is complete
+[[!format sh """
+[ben@voyagerS9 annex]$ glacier job list
+i/d 2014-10-16T20:25:23.068Z glacier-bbbbbbbb-bbbb-bbbb-bbbb-MYVAULTbbbbb
+a/d 2014-10-16T20:30:13.086Z glacier-bbbbbbbb-bbbb-bbbb-bbbb-MYVAULTbbbbb GPGHMACSHA1--cccccccccccc
+"""]]
+
+So, again I enter the get command:
+[[!format sh """
+[ben@voyagerS9 annex]$ git annex get --from=glacier localdir/myfile.jpg
+get localdir/myfile.jpg (from glacier...) (gpg) 
+failed                  
+git-annex: get: 1 failed
+[ben@voyagerS9 annex]$
+"""]]
+
+The command immediately fails after entering the gpg passphrase, releasing the shell. But in the background the glacier-cli is still running, downloads the file from Amazon and then dumps the gpg encrypted file content into the terminal. (4 MB of binary character garbage on the screen)
+
+git annex should not fail so early and wait until the data is coming in order to pipe it into gpg.
+
+### What version of git-annex are you using? On what operating system?
+Arch Linux git-annex-bin package.
+[[!format sh """
+[ben@voyagerS9 annex]$ git annex version
+git-annex version: 5.20140920-gb0c4300
+build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA CryptoHash
+key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
+remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
+local repository version: 5
+supported repository version: 5
+upgrade supported from repository versions: 0 1 2 4
+[ben@voyagerS9 annex]$ gpg --version
+gpg (GnuPG) 2.0.26
+libgcrypt 1.6.2
+"""]]
+
+### Possibly related information about the annexed repo and its history
+The file was uploaded sometime earlier this year with a different version of git annex:  Older source package for Arch Linux with Haskell packages from the Arch haskell repos.
+The special glacier remote was initially set up with an old gpg key (hybrid encryption), which is still in my keychain but has expired. I exchanged the Key with a new one by
+
+    $ git annex enableremote glacier keyid+=NEWKEY keyid-=OLDKEY
+
+I don't know why, but my AWS credentials seem no longer be embedded into the git repo. glacier upload (copy --to=) only succeeds with explicitly set AWS credential environment variables
+
+I tried
+
+    $ git annex enableremote embedcreds=yes
+
+with no noticeable change.
+I had changed the AWS credentials a while ago.
+
+Tomorrow I will try to download a just recently uploaded file with the current credentials and keys.

diff --git a/doc/forum/ARM_build_on_Zyxel_NAS.mdwn b/doc/forum/ARM_build_on_Zyxel_NAS.mdwn
index 8aba161..4fe46be 100644
--- a/doc/forum/ARM_build_on_Zyxel_NAS.mdwn
+++ b/doc/forum/ARM_build_on_Zyxel_NAS.mdwn
@@ -7,6 +7,7 @@ The system runs the following:
 `
 uname -a
 `
+
 `
 Linux nas 2.6.31.8 #2 Thu Dec 19 14:31:05 CST 2013 armv5tel GNU/Linux
 `

diff --git a/doc/forum/ARM_build_on_Zyxel_NAS.mdwn b/doc/forum/ARM_build_on_Zyxel_NAS.mdwn
new file mode 100644
index 0000000..8aba161
--- /dev/null
+++ b/doc/forum/ARM_build_on_Zyxel_NAS.mdwn
@@ -0,0 +1,14 @@
+I am trying to run the linux standalone ARM build on my Zyxel NAS, but I get the following error
+
+`FATAL: kernel too old`
+
+The system runs the following:
+
+`
+uname -a
+`
+`
+Linux nas 2.6.31.8 #2 Thu Dec 19 14:31:05 CST 2013 armv5tel GNU/Linux
+`
+
+Help would be much appreciated.  

devblog
diff --git a/doc/devblog/day_224-226__long_rainy_slog.mdwn b/doc/devblog/day_224-226__long_rainy_slog.mdwn
new file mode 100644
index 0000000..9c26b13
--- /dev/null
+++ b/doc/devblog/day_224-226__long_rainy_slog.mdwn
@@ -0,0 +1,14 @@
+3 days spent redoing the Android autobuilder! The new version of
+yesod-routes generates TH splices that break the EvilSplicer. So after
+updating everything to new versions for the Nth time, I instead went back
+to older versions. The autobuilder now uses Debian jessie, instead of
+wheezy. And all haskell packages are pinned to use the same version
+as in jessie, rather than the newest versions. Since jessie is quite near
+to being frozen, this should make the autobuilder much less prone to
+getting broken by new versions of haskell packages that need patches for
+Android.
+
+I happened to stumble over <http://hackage.haskell.org/package/setenv>
+while doing that. This supports setting and unsetting environment variables
+on Windows, which I had not known a way to do from Haskell. Cleaned up
+several ugly corners of the Windows port using it.

diff --git a/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__.mdwn b/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__.mdwn
new file mode 100644
index 0000000..c746e3d
--- /dev/null
+++ b/doc/forum/unannex_--fast_+_uninit_leaves_files_in_.git__47__annex__47__objects__63__.mdwn
@@ -0,0 +1,47 @@
+I have been trying to uninit a very large directory and ran into problems.
+
+`git annex unannex` seems to be completely infeasible because of how long it takes, also it seemed to grow the directory enormously, probably because it copies large files and then waits to delete them?
+
+I tried unannexing with the following commands instead:
+
+    `git annex get --from=backup`
+    `git annex unannex --fast`
+    `git annex uninit`
+
+This does what it is supposed to it seems, it hard links all copies of files. However, the unint step gives the following message:
+
+    git-annex: Not fully uninitialized
+    Some annexed data is still left in /science/carlo/GR_Coverage_Manuscript_Revisions_140616/.git/annex/objects/
+    This may include deleted files, or old versions of modified files.
+
+    If you don't care about preserving the data, just delete the
+    directory.
+
+    Or, you can move it to another location, in case it turns out
+    something in there is important.
+
+    Or, you can run `git annex unused` followed by `git annex dropunused`
+    to remove data that is not used by any tag or branch, which might
+    take care of all the data.
+
+    Then run `git annex uninit` again to finish.
+
+However, running `git annex unused` returns nothing.
+
+When I run `du -l -h --max-depth=1` I get the following output:
+
+    646G ./01-Collate_New_Species_Data
+    6.3G ./02-Prep_Annotations
+    1.8T ./03-Map_Riboprofiling_Data
+    111G ./04-Generate_Preprocessed_Files
+    94G  ./05-Det_Codon_Specfic_Occupancy
+    3.6T ./.git
+    6.2T .
+
+The .git/annex/objects directory remains 3.5TB in size, while the root directory, minus the contents of .git is only 2.7TB.
+
+I want to delete the .git folder to free up space, but I am very nervous now, because it looks like there is extra data in git annex that isn't present in the main directory. I don't want that to be lost, that would be a complete disaster.
+
+I tried the exact same process on a test directory, and it seemed to work completely, but losing this data would be an absolute disaster, so I don't want to risk it.
+
+Any thoughts?

Added a comment: I messed up that repo
diff --git a/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__/comment_1_72a97bc3ccb00c623baee874609bb4ca._comment b/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__/comment_1_72a97bc3ccb00c623baee874609bb4ca._comment
new file mode 100644
index 0000000..7033974
--- /dev/null
+++ b/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__/comment_1_72a97bc3ccb00c623baee874609bb4ca._comment
@@ -0,0 +1,21 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlZ-6dtxJY4cP7shhvV8E6YyuV0Rak8it4"
+ nickname="Giovanni"
+ subject="I messed up that repo"
+ date="2014-10-16T13:31:15Z"
+ content="""
+I'm sure I messed up the repository at some point
+
+the remote repository have a duplicated (I hope just duplicated and not triplicated) UUID: both ffc5c5d1-6166-4753-a2e4-88727d0f8c7b and 984e0333-3327-5f21-87a1-35d30f37f337
+
+on one of my working remotes I already used \"git annex dead 984e0333-3327-5f21-87a1-35d30f37f337\" and synced the special (bare) remote **but** trying to make a new clone and adding the remote special with enableremote i always get the same \"UUID mismatch\" error, listing the (marked) dead UUID
+
+please is there a way to get rid of the mess I did?!? :-)
+I'm tempted to manually add \"annex-uuid = ffc5c5d1-6166-4753-a2e4-88727d0f8c7b\" to the repo \".git/config\" but I fear I'm going to further mess things
+
+sorry for reportng this as a bug... actually it was my fault
+
+best regards
+Giovanni
+
+"""]]

diff --git a/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__.mdwn b/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__.mdwn
new file mode 100644
index 0000000..5dcf732
--- /dev/null
+++ b/doc/bugs/problems_with_enableremote_on_gcrypt_remote___40__hosted_with_gitolite__41__.mdwn
@@ -0,0 +1,105 @@
+### Please describe the problem.
+
+cannot enable an exiting gcrypt special remote after successfully having cloned the git repository; I get this error: "git-annex: uuid mismatch ..." at the end of the enableremote command (see transcript for details)
+
+maybe my fault but cannot understand what I'm doing wrong
+
+### What steps will reproduce the problem?
+
+1. cloned the encrypted repository with: "git clone gcrypt::git.myserver.net:myrepo TEST-myrepo.annex"
+
+2. enabled the special remote with: "git annex enableremote backup type=gcrypt encryption=hybrid gitrepo=git.myserver.net:myrepo"
+
+### What version of git-annex are you using? On what operating system?
+
+[[!format sh """
+git-annex version: 5.20140927~bpo70+2
+build flags: Assistant Pairing S3 Inotify XMPP Feeds Quvi TDFA
+key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SHA256 SHA1 SHA512 SHA224 SHA384 WORM URL
+remote types: git gcrypt S3 bup directory rsync web tahoe glacier ddar hook external
+local repository version: 5
+supported repository version: 5
+upgrade supported from repository versions: 0 1 2 4
+"""]]
+
+### Please provide any additional information below.
+
+[[!format sh """
+
+# transcript of commands and results
+
+(cloning)
+g@renaissance:~$ git clone gcrypt::git.myserver.net:DMS-myrepo TEST-myrepo.annex
+Cloning into 'TEST-myrepo.annex'...
+gcrypt: Development version -- Repository format MAY CHANGE
+gcrypt: Decrypting manifest
+gpg: Signature made Thu 16 Oct 2014 12:58:33 CEST
+[...]
+gcrypt: Remote ID is :id:8sucFsBZIGQKXFv5ecSW
+Receiving objects: 100% (3531/3531), 245.40 KiB | 0 bytes/s, done.
+Resolving deltas: 100% (1382/1382), done.
+[...]
+Receiving objects: 100% (636/636), 66.78 KiB | 0 bytes/s, done.
+Resolving deltas: 100% (209/209), done.
+Checking connectivity... done.
+
+
+(annex info)
+g@renaissance:~/TEST-myrepo.annex$ git annex info
+repository mode: indirect
+trusted repositories: (merging origin/git-annex origin/synced/git-annex into git-annex...)
+(Recording state in git...)
+0
+semitrusted repositories: 5
+	 -- here
+ 	00000000-0000-0000-0000-000000000001 -- web
+ 	622362eb-3882-4429-829b-1ec0f299f5a7 -- [omissis]
+ 	69b848ef-dd29-43e4-ae1b-73ec6a01f2f6 -- [omissis]
+ 	ffc5c5d1-6166-4753-a2e4-88727d0f8c7b -- backup
+untrusted repositories: 1
+	b185b2ed-c024-43ac-9049-3bc12a87dacc -- [omissis]
+transfers in progress: none
+available local disk space: 51.53 gigabytes (+1 megabyte reserved)
+local annex keys: 0
+local annex size: 0 bytes
+annexed files in working tree: 212
+size of annexed files in working tree: 210.56 megabytes
+bloom filter size: 16 mebibytes (0% full)
+backend usage: 
+	SHA256E: 212
+
+
+(list of remotes)
+g@renaissance:~/TEST-myrepo.annex$ git annex enableremote
+git-annex: Specify the name of the special remote to enable.
+Known special remotes: backup
+
+
+(enabling remote)
+g@renaissance:~/TEST-myrepo.annex$ git annex enableremote backup type=gcrypt encryption=hybrid gitrepo=git.myserver.net:myrepo
+enableremote backup (encryption update) (hybrid cipher with gpg key [omissis]) gcrypt: Development version -- Repository format MAY CHANGE
+gcrypt: Decrypting manifest
+gpg: Signature made Thu 16 Oct 2014 12:58:33 CEST
+[omissis]
+gcrypt: Remote ID is :id:8sucFsBZIGQKXFv5ecSW
+From gcrypt::git.myserver.net:myrepo
+ * [new branch]      synced/master -> backup/synced/master
+ * [new branch]      master     -> backup/master
+ * [new branch]      synced/git-annex -> backup/synced/git-annex
+ * [new branch]      git-annex  -> backup/git-annex
+gcrypt: Development version -- Repository format MAY CHANGE
+gcrypt: Decrypting manifest
+gpg: Signature made Thu 16 Oct 2014 12:58:33 CEST
+[omissis]
+Counting objects: 3, done.
+Compressing objects: 100% (2/2), done.
+Total 3 (delta 0), reused 1 (delta 0)
+gcrypt: Encrypting to:  -r [omissis]
+gcrypt: Requesting manifest signature
+gpg: [omissis]: skipped: public key already present
+To gcrypt::git.myserver.net:myserver
+   1195dda..3254af7  git-annex -> git-annex
+git-annex: uuid mismatch (UUID "78104a6f-16a9-504b-8e8a-d8a3c59351e8",Just (UUID "984e0333-3327-5f21-87a1-35d30f37f337"),":id:8sucFsBZIGQKXFv5ecSW")
+
+# End of transcript or log.
+"""]]

Added a comment
diff --git a/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_5_339123ab87b69b11d6e999ad6eaf6df5._comment b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_5_339123ab87b69b11d6e999ad6eaf6df5._comment
new file mode 100644
index 0000000..58bed56
--- /dev/null
+++ b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_5_339123ab87b69b11d6e999ad6eaf6df5._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawncVeolylM8VoRbWhIYDlfGhIP69-aNXm4"
+ nickname="Espen"
+ subject="comment 5"
+ date="2014-10-15T17:44:55Z"
+ content="""
+Did a quick \"du -h\" on both directories. Local is 27 and remote is 23.7 GB, so some data is obviously missing on the remote. Also, how do I increase either the permitted size of one log file, or the number of log files stored? Seems the logs where rotated over the whole allowed log batch and size before the job was done during the night, so difficult to tell if there were more errors.
+"""]]

Added a comment
diff --git a/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_4_44639388349a9ea5eabda9ebf79817b3._comment b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_4_44639388349a9ea5eabda9ebf79817b3._comment
new file mode 100644
index 0000000..c97438d
--- /dev/null
+++ b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_4_44639388349a9ea5eabda9ebf79817b3._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawncVeolylM8VoRbWhIYDlfGhIP69-aNXm4"
+ nickname="Espen"
+ subject="comment 4"
+ date="2014-10-15T17:34:52Z"
+ content="""
+Sorry, forgot to format the text and the typo. Can I edit my own comments?
+"""]]

Added a comment
diff --git a/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_3_2ad4c1a4bfe00c22444ab878c84a8830._comment b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_3_2ad4c1a4bfe00c22444ab878c84a8830._comment
new file mode 100644
index 0000000..8c42c43
--- /dev/null
+++ b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_3_2ad4c1a4bfe00c22444ab878c84a8830._comment
@@ -0,0 +1,47 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawncVeolylM8VoRbWhIYDlfGhIP69-aNXm4"
+ nickname="Espen"
+ subject="comment 3"
+ date="2014-10-15T17:32:10Z"
+ content="""
+Finally had some time today to lock at the logs. However, I started from scratch. Created a local repo with the assistant, transferred some real files into the local repo dir (not .git of course). Waiting until everything was added etc. Then I created the remote server repo and it immediately started to transfer files from the local repo to the remote. Then I was slightly surprised when I got back home and saw this in the logfile:
+
+----- cut -----
+
+somefile
+
+         32,768   1%    0.00kB/s    0:00:00  To ssh://someserverrepodir
+ * [new branch]      git-annex -> synced/git-annex
+ * [new branch]      annex/direct/master -> synced/master
+error: Ref refs/heads/synced/git-annex is at 112bb35566a0ee9434fb74524cdced45792bf8ed but expected 0000000000000000000000000000000000000000
+error: Ref refs/heads/synced/master is at d593f3c3a5090009789154bd60c3390d9a1b90d6 but expected 0000000000000000000000000000000000000000
+remote: error: failed to lock refs/heads/synced/git-annex        
+remote: error: failed to lock refs/heads/synced/master        
+To ssh://someserverrepodir
+ ! [remote rejected] git-annex -> synced/git-annex (failed to lock)
+ ! [remote rejected] annex/direct/master -> synced/master (failed to lock)
+error: failed to push some refs to 'ssh://someserverrepodir'
+
+      1,966,080  96%    1.73MB/s    0:00:00  
+      2,034,254 100%    1.79MB/s    0:00:01 (xfr#1, to-chk=0/1)
+fatal: 'someserverrepodescription' does not appear to be a git repository
+fatal: Could not read from remote repository.
+
+Please make sure you have the correct access rights
+and the repository exists.
+fatal: 'someserverrepodescription' does not appear to be a git repository
+fatal: Could not read from remote repository.
+
+Please make sure you have the correct access rights
+and the repository exists.
+fatal: 'someserverrepodescription' does not appear to be a git repository
+fatal: Could not read from remote repository.
+
+Please make sure you have the correct access rights
+and the repository exists.
+[2014-10-13 21:58:05 CEST] Transferrer: Uploaded somefile
+
+----- cut -----
+
+This was a total surprise to me. If this was the stuff that made the previous setup fail, I don not know, but I will try to track down this error first. I would be quite surprised if it indeed was a permission issue. Also visible is an upload session for one of the files...that seems to go on fine and is probably not related to the error at all. This was the only error printed once during the entire transfer/sync process. Thought the first thing I would check was the size and number of files in the local and remote directory, but I'm not really sure how to do this with all the git stuff around on the remote. Typically \"git ls-files | wc -l\" or similar gets me going on the local repo. How would I do this on the remote (in backup mode if that counts)?
+"""]]

Added a comment
diff --git a/doc/bugs/Build_error_with_Yesod_1.4/comment_2_05f6fb19f2527f6dd72ab0e2f87c021a._comment b/doc/bugs/Build_error_with_Yesod_1.4/comment_2_05f6fb19f2527f6dd72ab0e2f87c021a._comment
new file mode 100644
index 0000000..4f671d0
--- /dev/null
+++ b/doc/bugs/Build_error_with_Yesod_1.4/comment_2_05f6fb19f2527f6dd72ab0e2f87c021a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.111"
+ subject="comment 2"
+ date="2014-10-15T17:30:45Z"
+ content="""
+Hmm, yeah, it seems the upload to hackage failed, because hackage still rejects cabal files mentioning the legal os(gnu). Sigh. Fixed now.
+"""]]

Added a comment
diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_3_6cbd7329f1f11edf8dd90df27d45158f._comment b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_3_6cbd7329f1f11edf8dd90df27d45158f._comment
new file mode 100644
index 0000000..ecba0fc
--- /dev/null
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_3_6cbd7329f1f11edf8dd90df27d45158f._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.111"
+ subject="comment 3"
+ date="2014-10-15T17:25:27Z"
+ content="""
+I think that if you have installed all the build deps for git-annex using homebrew, you should be able to just install git-annex from source.
+
+Or, ask the homebrewers to update the package there..
+"""]]

Added a comment: Homebrew
diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_2_14a584567ef42d5b7955ee970200e74d._comment b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_2_14a584567ef42d5b7955ee970200e74d._comment
new file mode 100644
index 0000000..744b9f1
--- /dev/null
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_2_14a584567ef42d5b7955ee970200e74d._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://digiuser.livejournal.com/"
+ ip="67.161.4.185"
+ subject="Homebrew"
+ date="2014-10-15T15:37:34Z"
+ content="""
+Oh, ok, thank you. I am using the latest version from homebrew. Is there a way to get homebrew to install the latest version?
+
+Thanks.
+"""]]

Added a comment: Not on hackage
diff --git a/doc/bugs/Build_error_with_Yesod_1.4/comment_1_42fe9d62c9dcc55deea35d16b67177e6._comment b/doc/bugs/Build_error_with_Yesod_1.4/comment_1_42fe9d62c9dcc55deea35d16b67177e6._comment
new file mode 100644
index 0000000..145b5b1
--- /dev/null
+++ b/doc/bugs/Build_error_with_Yesod_1.4/comment_1_42fe9d62c9dcc55deea35d16b67177e6._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnmF_9CAtfqdZkC4e-_dCX-rK5bqh4RWkw"
+ nickname="Carl"
+ subject="Not on hackage"
+ date="2014-10-15T15:34:02Z"
+ content="""
+I stand corrected, but it seems this release is not on hackage?
+"""]]

Added a comment
diff --git a/doc/forum/Git_annex_hangs/comment_4_2ba5992c32753ed03ddd5c12264e9acf._comment b/doc/forum/Git_annex_hangs/comment_4_2ba5992c32753ed03ddd5c12264e9acf._comment
new file mode 100644
index 0000000..d46dea1
--- /dev/null
+++ b/doc/forum/Git_annex_hangs/comment_4_2ba5992c32753ed03ddd5c12264e9acf._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawnjssENdbjzvblxOm4Qr8x2C-BdIV_k_y4"
+ nickname="Tadeusz"
+ subject="comment 4"
+ date="2014-10-15T15:25:27Z"
+ content="""
+I will look into PPA. I hope it won't be this slow:) How long would it take for git annex to add/modify/sync files (~100) taking up 100GB or so? Days? Hours? Minutes?
+"""]]

Added a comment
diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_1_ec390a7d521c697eb6b17e8db1dc9d1d._comment b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_1_ec390a7d521c697eb6b17e8db1dc9d1d._comment
new file mode 100644
index 0000000..7b8a0e1
--- /dev/null
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work/comment_1_ec390a7d521c697eb6b17e8db1dc9d1d._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.111"
+ subject="comment 1"
+ date="2014-10-15T15:25:14Z"
+ content="""
+You're using an old version of git-annex from before the recent complete rewrite of the chunking code. That old version did not support chunking for S3. QED. Upgrade.
+
+Note that your configuration has both the chunksize= and chunk= set. This is not a good idea, since they enable different types of chunking that are not compatible. If I were you, I'd delete that special remote and make a new one after upgrading, and be careful to only set `chunk=` in that new one.
+"""]]

diff --git a/doc/forum/Default_annex.largefiles.mdwn b/doc/forum/Default_annex.largefiles.mdwn
new file mode 100644
index 0000000..9da3220
--- /dev/null
+++ b/doc/forum/Default_annex.largefiles.mdwn
@@ -0,0 +1 @@
+I'm new to git annex, so if this has been discussed before, please forgive me.  The documentation of annex.largefiles seems to say that all files are added to the annex by default.  However, when I tried it, several of my smaller files were not added to the annex.  I admit that I haven't tried changing this value yet.  Has the default changed?  I'm using the package from Arch AUR git-annex-bin. Possibly this version has a different default?

close
diff --git a/doc/bugs/Build_error_with_Yesod_1.4.mdwn b/doc/bugs/Build_error_with_Yesod_1.4.mdwn
index a37120b..dbee265 100644
--- a/doc/bugs/Build_error_with_Yesod_1.4.mdwn
+++ b/doc/bugs/Build_error_with_Yesod_1.4.mdwn
@@ -282,3 +282,6 @@ git-annex-5.20140927
 
 # End of transcript or log.
 """]]
+
+> You're not building the most recent version of git-annex; this was
+> already fixed in version 5.20141013. [[done]] --[[Joey]]

Added a comment
diff --git a/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_2_e96e8cf6e08e3a21bfcefbc202e78fe2._comment b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_2_e96e8cf6e08e3a21bfcefbc202e78fe2._comment
new file mode 100644
index 0000000..fa0f491
--- /dev/null
+++ b/doc/forum/how_to_set_up_syncing_for_multiple_computer_and_a_centralized_backup_unit/comment_2_e96e8cf6e08e3a21bfcefbc202e78fe2._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY"
+ nickname="Tor Arne"
+ subject="comment 2"
+ date="2014-10-14T22:13:44Z"
+ content="""
+Did you figure this one out?
+"""]]

Added a comment
diff --git a/doc/forum/multiple_git_repositories_inside_git_annex_assistant_repository/comment_4_4e89b3590cc33b2565cd173ef7c85013._comment b/doc/forum/multiple_git_repositories_inside_git_annex_assistant_repository/comment_4_4e89b3590cc33b2565cd173ef7c85013._comment
new file mode 100644
index 0000000..b32abd3
--- /dev/null
+++ b/doc/forum/multiple_git_repositories_inside_git_annex_assistant_repository/comment_4_4e89b3590cc33b2565cd173ef7c85013._comment
@@ -0,0 +1,11 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawlM_DRhi_5pJrTA0HbApHR25iAgy-NBXTY"
+ nickname="Tor Arne"
+ subject="comment 4"
+ date="2014-10-14T22:09:37Z"
+ content="""
+If I use git-annex to keep my home and work computer in sync, the conflict would only happen if I somehow manage to make a change in the git repo on one machine that's not propagated to the other straight away (eg, network down), and I then modify the git repo of the other as well?
+
+Could git-annex have a different merge strategy in this case, not try to merge anything under .git and give a warning?
+
+"""]]

diff --git a/doc/bugs/Build_error_with_Yesod_1.4.mdwn b/doc/bugs/Build_error_with_Yesod_1.4.mdwn
new file mode 100644
index 0000000..a37120b
--- /dev/null
+++ b/doc/bugs/Build_error_with_Yesod_1.4.mdwn
@@ -0,0 +1,284 @@
+### Please describe the problem.
+I have problems building with yesod 1.4
+
+### What steps will reproduce the problem?
+Building git annex in a clean sandbox. 
+
+### What version of git-annex are you using? On what operating system?
+5.20140927 on OS X i.e. Trying to upgrade the homebrew recipe to the most recent version of git-annex
+
+### Please provide any additional information below.
+Error messages below are discussed in the following SO-thread:
+https://stackoverflow.com/questions/26225991/illegal-view-pattern-frompathpiece-just-dyn-abdd-when-using-parameters-on
+
+
+[[!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
+[310 of 470] Compiling Assistant.WebApp.Types ( Assistant/WebApp/Types.hs, dist/dist-sandbox-52ca649e/build/git-annex/git-annex-tmp/Assistant/WebApp/Types.o )
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_aceZO
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_aceZW
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf02
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0c
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0e
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0f
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0h
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0j
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0l
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0n
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0p
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0r
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0u
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0w
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0y
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0z
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0C
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0D
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0F
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0H
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0J
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0L
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0M
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0O
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0R
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0T
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf0U
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf11
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf13
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf18
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1a
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1c
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1e
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1g
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1i
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1k
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1m
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1o
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1q
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1s
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1v
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1x
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1z
+    Use ViewPatterns to enable view patterns
+
+Assistant/WebApp/Types.hs:40:1:
+    Illegal view pattern:  fromPathPiece -> Just dyn_acf1B
+    Use ViewPatterns to enable view patterns

(Diff truncated)
diff --git a/doc/forum/How_to_work_with_transfer_repos_manually__63__.mdwn b/doc/forum/How_to_work_with_transfer_repos_manually__63__.mdwn
new file mode 100644
index 0000000..8ec42db
--- /dev/null
+++ b/doc/forum/How_to_work_with_transfer_repos_manually__63__.mdwn
@@ -0,0 +1,18 @@
+Hello,
+
+I have 3 repos, desktop, external and server. desktop and server are sometimes connected, sometimes they should sync using the server. I want to do it manually without the assistent, since I love to learn it that way before I let the assistent do the work.
+
+client and desktop are "wanted standard" and "group client". server is "group transfer".
+
+desktop and server have each other and server in their remotes. server has no remotes.
+
+Is this setup fine that way?
+
+How to use it with the transfer repo?
+
+"git annex sync && git annex copy --to server --auto" after changing files?
+"git annex sync && git annex copy --from server --auto" to update?
+
+Will the on the server automatically be dropped? Or do the server needs to have a active role, i.e. called via ssh?
+
+Thanks!

vicfg: Deleting configurations now resets to the default, where before it has no effect.
Added a Default instance for TrustLevel, and was able to use that to clear
up several other parts of the code too.
This commit was sponsored by Stephan Schulz
diff --git a/Annex/Branch/Transitions.hs b/Annex/Branch/Transitions.hs
index f5833c0..9d306fe 100644
--- a/Annex/Branch/Transitions.hs
+++ b/Annex/Branch/Transitions.hs
@@ -19,6 +19,7 @@ import Types.TrustLevel
 import Types.UUID
 
 import qualified Data.Map as M
+import Data.Default
 
 data FileTransition
 	= ChangeFile String
@@ -60,4 +61,4 @@ dropDeadFromPresenceLog :: TrustMap -> [Presence.LogLine] -> [Presence.LogLine]
 dropDeadFromPresenceLog trustmap = filter $ notDead trustmap (toUUID . Presence.info)
 
 notDead :: TrustMap -> (v -> UUID) -> v -> Bool
-notDead trustmap a v = M.findWithDefault SemiTrusted (a v) trustmap /= DeadTrusted
+notDead trustmap a v = M.findWithDefault def (a v) trustmap /= DeadTrusted
diff --git a/Command/Vicfg.hs b/Command/Vicfg.hs
index 26a75da..834fde4 100644
--- a/Command/Vicfg.hs
+++ b/Command/Vicfg.hs
@@ -5,6 +5,8 @@
  - Licensed under the GNU GPL version 3 or higher.
  -}
 
+{-# LANGUAGE RankNTypes #-}
+
 module Command.Vicfg where
 
 import qualified Data.Map as M
@@ -12,6 +14,7 @@ import qualified Data.Set as S
 import System.Environment (getEnv)
 import Data.Tuple (swap)
 import Data.Char (isSpace)
+import Data.Default
 
 import Common.Annex
 import Command
@@ -49,7 +52,7 @@ vicfg curcfg f = do
 	-- Allow EDITOR to be processed by the shell, so it can contain options.
 	unlessM (liftIO $ boolSystem "sh" [Param "-c", Param $ unwords [vi, shellEscape f]]) $
 		error $ vi ++ " exited nonzero; aborting"
-	r <- parseCfg curcfg <$> liftIO (readFileStrict f)
+	r <- parseCfg (defCfg curcfg) <$> liftIO (readFileStrict f)
 	liftIO $ nukeFile f
 	case r of
 		Left s -> do
@@ -85,6 +88,21 @@ setCfg curcfg newcfg = do
 	mapM_ (uncurry groupPreferredContentSet) $ M.toList $ cfgGroupPreferredContentMap diff
 	mapM_ (uncurry scheduleSet) $ M.toList $ cfgScheduleMap diff
 
+{- Default config has all the keys from the input config, but with their
+ - default values. -}
+defCfg :: Cfg -> Cfg
+defCfg curcfg = Cfg
+	{ cfgTrustMap = mapdef $ cfgTrustMap curcfg
+	, cfgGroupMap = mapdef $ cfgGroupMap curcfg
+	, cfgPreferredContentMap = mapdef $ cfgPreferredContentMap curcfg
+	, cfgRequiredContentMap = mapdef $ cfgRequiredContentMap curcfg
+	, cfgGroupPreferredContentMap = mapdef $ cfgGroupPreferredContentMap curcfg
+	, cfgScheduleMap = mapdef $ cfgScheduleMap curcfg
+	}
+  where
+	mapdef :: forall k v. Default v => M.Map k v -> M.Map k v
+	mapdef = M.map (const Data.Default.def)
+
 diffCfg :: Cfg -> Cfg -> Cfg
 diffCfg curcfg newcfg = Cfg
 	{ cfgTrustMap = diff cfgTrustMap
@@ -124,7 +142,7 @@ genCfg cfg descs = unlines $ intercalate [""]
 		, com "(Valid trust levels: " ++ trustlevels ++ ")"
 		]
 		(\(t, u) -> line "trust" u $ showTrustLevel t)
-		(\u -> lcom $ line "trust" u $ showTrustLevel SemiTrusted)
+		(\u -> lcom $ line "trust" u $ showTrustLevel Data.Default.def)
 	  where
 		trustlevels = unwords $ map showTrustLevel [Trusted .. DeadTrusted]
 
@@ -203,7 +221,7 @@ lcom = map (\l -> if "#" `isPrefixOf` l then l else '#' : l)
 {- If there's a parse error, returns a new version of the file,
  - with the problem lines noted. -}
 parseCfg :: Cfg -> String -> Either String Cfg
-parseCfg curcfg = go [] curcfg . lines
+parseCfg defcfg = go [] defcfg . lines
   where
 	go c cfg []
 		| null (mapMaybe fst c) = Right cfg
diff --git a/Logs/Trust.hs b/Logs/Trust.hs
index 047a728..b880f44 100644
--- a/Logs/Trust.hs
+++ b/Logs/Trust.hs
@@ -19,6 +19,7 @@ module Logs.Trust (
 ) where
 
 import qualified Data.Map as M
+import Data.Default
 
 import Common.Annex
 import Types.TrustLevel
@@ -38,7 +39,7 @@ trustGet level = M.keys . M.filter (== level) <$> trustMap
 
 {- Returns the TrustLevel of a given repo UUID. -}
 lookupTrust :: UUID -> Annex TrustLevel
-lookupTrust u = (fromMaybe SemiTrusted . M.lookup u) <$> trustMap
+lookupTrust u = (fromMaybe def . M.lookup u) <$> trustMap
 
 {- Partitions a list of UUIDs to those matching a TrustLevel and not. -}
 trustPartition :: TrustLevel -> [UUID] -> Annex ([UUID], [UUID])
diff --git a/Types/StandardGroups.hs b/Types/StandardGroups.hs
index 66c1dd5..a60445a 100644
--- a/Types/StandardGroups.hs
+++ b/Types/StandardGroups.hs
@@ -9,6 +9,7 @@ module Types.StandardGroups where
 
 import Types.Remote (RemoteConfig)
 import Types.Group
+import Data.Default
 
 import qualified Data.Map as M
 import Data.Maybe
diff --git a/Types/TrustLevel.hs b/Types/TrustLevel.hs
index a72dbb8..4af7129 100644
--- a/Types/TrustLevel.hs
+++ b/Types/TrustLevel.hs
@@ -14,6 +14,7 @@ module Types.TrustLevel (
 ) where
 
 import qualified Data.Map as M
+import Data.Default
 
 import Types.UUID
 
@@ -22,6 +23,9 @@ import Types.UUID
 data TrustLevel = Trusted | SemiTrusted | UnTrusted | DeadTrusted
 	deriving (Eq, Enum, Ord, Bounded)
 
+instance Default TrustLevel  where
+	def = SemiTrusted
+
 type TrustMap = M.Map UUID TrustLevel
 
 readTrustLevel :: String -> Maybe TrustLevel
diff --git a/debian/changelog b/debian/changelog
index fc809b4..4724b63 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+git-annex (5.20141014) UNRELEASED; urgency=medium
+
+  * vicfg: Deleting configurations now resets to the default, where
+    before it has no effect.
+
+ -- Joey Hess <joeyh@debian.org>  Tue, 14 Oct 2014 14:09:24 -0400
+
 git-annex (5.20141013) unstable; urgency=medium
 
   * Adjust cabal file to support building w/o assistant on the hurd.
diff --git a/doc/todo/vicfg_comment_gotcha.mdwn b/doc/todo/vicfg_comment_gotcha.mdwn
index 33befd3..910af01 100644
--- a/doc/todo/vicfg_comment_gotcha.mdwn
+++ b/doc/todo/vicfg_comment_gotcha.mdwn
@@ -9,8 +9,12 @@ but that way lies madness. Also, it's not at all clear what the "default"
 should be in response to such an action. The default varies per type of
 configuration, and vicfg does't know about defaults.
 
+> [[fixed|done]]; this was a job for Data.Default!  --[[Joey]]
+
 Instead, I think it should detect when a setting provided in the input
 version of the file is not present in the output version, and plop the user
 back into the editor with an error, telling them that cannot be handled,
 and suggesting they instead change the value to the value they now want it
 to have.
+
+> Nah, too complicated.

diff --git a/doc/bugs/rsync_remote_is_not_working.mdwn b/doc/bugs/rsync_remote_is_not_working.mdwn
new file mode 100644
index 0000000..a4b15b3
--- /dev/null
+++ b/doc/bugs/rsync_remote_is_not_working.mdwn
@@ -0,0 +1,26 @@
+Host: Mac OS with git-annex 5.20140919-g0f7caf5
+
+Remote: Linux 
+
+* with git-annex 5.20140920-gb0c4300
+* using user&password login
+
+On Host:
+
+1. create a repo with git init && git annex init && git annex direct
+1. add a rsync repo in git-annex webapp, type "small archive", with shared encryption (same result using command line)
+1. copy some new files to the repo, expect the files to appear in the remote repo (check with du)
+1. Web app says "synced with remote-name", but remote repo is completely empty
+1. run git annex copy --to $remotename, now remote repo is filled with files
+1. but the sizes are really small, seems that the actual files are not being transferred
+1. convert the repo to indirect repo: git annex indirect
+1. re-run git annex copy, now the repo size on the remote seems about right
+1. now start git annex assistant, copy some new files, expect new files to be synced
+1. actual: the remote becomes completely empty, the existing files are removed!
+
+The other small issue
+
+* The add remote interface stops at "check remote" prompt for a long time without completing
+* Kill the webapp process, re-run webapp, add remote again, it worked very quickly
+* But future interaction with the remote still requires password, both commandline & webapp
+

Added a comment: Diff of unlocked file
diff --git a/doc/todo/wishlist:_git_annex_diff/comment_2_2e8324f47b66dce385263e258e94da16._comment b/doc/todo/wishlist:_git_annex_diff/comment_2_2e8324f47b66dce385263e258e94da16._comment
new file mode 100644
index 0000000..83501b7
--- /dev/null
+++ b/doc/todo/wishlist:_git_annex_diff/comment_2_2e8324f47b66dce385263e258e94da16._comment
@@ -0,0 +1,32 @@
+[[!comment format=mdwn
+ username="Bram"
+ ip="81.20.68.186"
+ subject="Diff of unlocked file"
+ date="2014-10-14T10:11:04Z"
+ content="""
+I wrote a little shell script that implements part of this request. It shows the diff between an unlocked file and its locked version (i.e. the current edits that have not yet been annexed).
+This only works in non-direct mode, and obviously with 'diffable' content only.
+
+Usage is simple, the only parameter it requires is the unlocked filename.
+
+    #!/bin/bash
+    
+    DIFF=\"diff\"
+    FILE=\"$1\"
+    KEY=$(git annex lookupkey \"$FILE\")
+    
+    GITPATH=\"$(git rev-parse --show-toplevel)/.git\"
+    ANNEXPATH=$GITPATH/annex/objects/$(git annex examinekey --format='${hashdirmixed}${key}/${key}' \"$KEY\")
+    
+    if [ -L \"$FILE\" ]; then
+      echo \"$FILE is not unlocked.\" > /dev/stderr
+    else
+      if [ -r \"$ANNEXPATH\" ]; then
+        $DIFF \"$ANNEXPATH\" \"$FILE\"
+      else
+        echo \"Cannot find $ANNEXPATH\" > /dev/stderr
+        exit 1
+      fi
+      exit 1
+    fi
+"""]]

diff --git a/doc/tips/deleting_unwanted_files.mdwn b/doc/tips/deleting_unwanted_files.mdwn
index c83b960..a6e70e3 100644
--- a/doc/tips/deleting_unwanted_files.mdwn
+++ b/doc/tips/deleting_unwanted_files.mdwn
@@ -21,6 +21,10 @@ But, let's say you don't care about that, you only want to keep files that are i
 Finally, sometimes you want to remove unused files from a special remote. To accomplish this, pass `--from remotename` to the unused and dropunused commands, and they will act on
 files stored in that remote, rather than on the local repository.
 
+## let the assistant take care of it
+
+If you're using the git-annex assistant, you don't normally need to worry about this. Just delete files however you normally would. The assistant will try to migrate unused file contents away from your local repository and store them in whatever backup repositories you've set up.
+
 ## delete all the copies method
 
 You have a file. You want that file to immediately vanish from the face of the earth to the best of your abilities.
@@ -28,5 +32,6 @@ You have a file. You want that file to immediately vanish from the face of the e
 1. `git annex drop --force file`
 2. `git annex whereis file`
 3. `git annex drop --force file --from $repo` repeat for each repository listed by the whereis command
+4. `rm file; git annex sync`
 
 Of course, if you have offline backup repositories that contain this file, you'll have to bring them online before you can drop it from them, etc.

diff --git a/doc/tips/deleting_unwanted_files.mdwn b/doc/tips/deleting_unwanted_files.mdwn
index 5fa197c..c83b960 100644
--- a/doc/tips/deleting_unwanted_files.mdwn
+++ b/doc/tips/deleting_unwanted_files.mdwn
@@ -6,7 +6,7 @@ With git-annex this changes some: Very large files can be managed with git-annex
 
 In this method, you just remove annexed files whenever you want, and commit the changes. This is probably the most natural way to go.
 
-In an indirect mode repo, you can do this the same way you would in a regular git repository. For example, `git rm foo; git commit -m "removed foo". This leaves the contents of the files still in the annex, not really deleted yet.
+In an indirect mode repo, you can do this the same way you would in a regular git repository. For example, `git rm foo; git commit -m "removed foo"`. This leaves the contents of the files still in the annex, not really deleted yet.
 
 If you have a direct mode repo, you can't run `git rm` in it. Instead, you can just delete files using `rm` or your file manager, and then run `git annex sync` to commit the deletion. That will delete the file's content from your disk. Even if it's the only copy of the file!
 

diff --git a/doc/tips/deleting_unwanted_files.mdwn b/doc/tips/deleting_unwanted_files.mdwn
new file mode 100644
index 0000000..5fa197c
--- /dev/null
+++ b/doc/tips/deleting_unwanted_files.mdwn
@@ -0,0 +1,32 @@
+It's quite hard to delete a file from a git repository once it's checked in and pushed to origin. This is normally ok, since git repositories contain mostly small files, and a good thing since losing hard work stinks. 
+
+With git-annex this changes some: Very large files can be managed with git-annex, and it's not uncommon to be done with such a file and want to delete it. So, git-annex provides a number of ways to handle this, while still trying to avoid accidental foot shooting that would lose the last copy of an important file.
+
+## the garbage collecting method
+
+In this method, you just remove annexed files whenever you want, and commit the changes. This is probably the most natural way to go.
+
+In an indirect mode repo, you can do this the same way you would in a regular git repository. For example, `git rm foo; git commit -m "removed foo". This leaves the contents of the files still in the annex, not really deleted yet.
+
+If you have a direct mode repo, you can't run `git rm` in it. Instead, you can just delete files using `rm` or your file manager, and then run `git annex sync` to commit the deletion. That will delete the file's content from your disk. Even if it's the only copy of the file!
+
+Either way, deleting files can leave some garbage lying around in either the local repository, or other repositories that contained a copy of the content of the file you deleted. Eventually you'll want to free up some disk space used by one of these repositories, and then it's time to take out the garbage.
+
+To collect the garbage, you can run `git annex unused` inside the repository which you want to slim down. That will list files stored in the annex that are not used by any git branches or tags. Followed by `git annex dropunused 1-10` to delete a range of the unused files from the annex.
+
+In recent versions of git-annex, `git annex dropunused` checks that enough other copies of a file's content exist in other repositories before deleting it, so this won't ever delete the last copy of some file. This is a good default, because these unused files are still referred to by some commits in the git history, and you might want to retain the full history of every version of a file.
+
+But, let's say you don't care about that, you only want to keep files that are in use by branches and tags. Then you can use `git annex dropunused --force` with a range of files, which will delete them even if it's the last copy.
+
+Finally, sometimes you want to remove unused files from a special remote. To accomplish this, pass `--from remotename` to the unused and dropunused commands, and they will act on
+files stored in that remote, rather than on the local repository.
+
+## delete all the copies method
+
+You have a file. You want that file to immediately vanish from the face of the earth to the best of your abilities.
+
+1. `git annex drop --force file`
+2. `git annex whereis file`
+3. `git annex drop --force file --from $repo` repeat for each repository listed by the whereis command
+
+Of course, if you have offline backup repositories that contain this file, you'll have to bring them online before you can drop it from them, etc.

Added a comment
diff --git a/doc/forum/Changing_files_during_git_annex_runs/comment_1_8067077c49dafbe2afa7d182b3314df4._comment b/doc/forum/Changing_files_during_git_annex_runs/comment_1_8067077c49dafbe2afa7d182b3314df4._comment
new file mode 100644
index 0000000..312100b
--- /dev/null
+++ b/doc/forum/Changing_files_during_git_annex_runs/comment_1_8067077c49dafbe2afa7d182b3314df4._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.111"
+ subject="comment 1"
+ date="2014-10-13T21:33:35Z"
+ content="""
+git-annex will detect things like files being changed at the same time that `git annex add` is run. It doesn't currently do a full lsof check to make sure nothing has a file open when `git annex add` is run (the assistant does do such extra checks).
+
+I don't see why syncing or transferring files to other repos should prevent your music player or whatever from using the files that you have locally present.
+
+If you're using direct mode and your music player is modifying the contents of files in the repository, then that will prevent other repositories downloading older versions of those files, since the old version is no longer present in the direct mode repository. There is the possibility for some innefficient attempts to transfer a file, that would fail because it got modified in between. git-annex detects this, but it can still waste bandwidth.
+
+(If my music player was modifying files all the time,  I'd give it a good talking to; that's not the job of a music player. But, I keep my music in an indirect mode repo, so any music player would find it hard to modify annexed files anyway.)
+"""]]

Added a comment
diff --git a/doc/forum/lsof_resource_use_problems/comment_1_a5e5d410545fa7f93f08936ec6aeee42._comment b/doc/forum/lsof_resource_use_problems/comment_1_a5e5d410545fa7f93f08936ec6aeee42._comment
new file mode 100644
index 0000000..5531211
--- /dev/null
+++ b/doc/forum/lsof_resource_use_problems/comment_1_a5e5d410545fa7f93f08936ec6aeee42._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.111"
+ subject="comment 1"
+ date="2014-10-13T21:21:18Z"
+ content="""
+That seems very wrong.. On my linux system here, I can `lsof /` and it uses 4 kb total, and runs in 0.09 seconds, to report on 3500 open files.
+
+But, I don't know about freebsd. lsof may be more expensive there for some reason, like needing to look in kernel memory rather than in /proc perhaps? But expensive to the tune of gigabytes of space used, that must be lsof misbehaving.
+"""]]

diff --git a/doc/forum/lsof_resource_use_problems.mdwn b/doc/forum/lsof_resource_use_problems.mdwn
new file mode 100644
index 0000000..f15b81f
--- /dev/null
+++ b/doc/forum/lsof_resource_use_problems.mdwn
@@ -0,0 +1,42 @@
+When the assistant runs lsof on my file system, the lsof process consumes a horrendous amount of memory (>11GB). This forces a large amount of swapping, and brings the system to its knees until the process exits. The same thing occurs when I run lsof manually, but this is currently making the assistant unusable for me. Is this normal when running lsof on a large number of files, or is something wrong with my particular setup?
+
+An example of resource usage from top, and some system details:
+
+---
+      PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
+    33735 username       1  23    0 28208M 11507M pfault  0   0:07  58.50% lsof
+---
+    [username@hostname /mnt/media]$ uname -a
+    FreeBSD hostname 9.2-RELEASE-p10 FreeBSD 9.2-RELEASE-p10 #0 r262572+4fb5adc: Wed Aug  6 17:07:16 PDT 2014     root@build3.ixsystems.com:/fusion/jkh/921/freenas/os-base/amd64/fusion/jkh/921/freenas/FreeBSD/src/sys/FREENAS.amd64  amd64
+---
+    [username@hostname /mnt/media]$ lsof -h
+    lsof 4.88
+---
+    [username@hostname /mnt/media]$ git annex info
+    repository mode: direct
+    trusted repositories: 0
+    semitrusted repositories: 1
+            d03b21fc-666d-457d-b953-0ca0ac7393d8 -- [hostname_media_indirect]
+    untrusted repositories: 2
+            00000000-0000-0000-0000-000000000001 -- web
+            31497a4d-290e-409a-9fd2-20c7340c245b -- hostname_mnt/media [here]
+    transfers in progress: none
+    available local disk space: 780.1 gigabytes (+10 gigabytes reserved)
+    local annex keys: 41576
+    local annex size: 943.95 gigabytes (+ 49 unknown size)
+    annexed files in working tree: 41887
+    size of annexed files in working tree: 945.14 gigabytes (+ 50 unknown size)
+    bloom filter size: 16 mebibytes (8.3% full)
+    backend usage:
+            SHA512E: 81518
+            WORM: 1846
+            URL: 99
+---
+    [username@hostname /mnt/media]$ git annex version
+    git-annex version: 5.20140817
+    build flags: Assistant Webapp Webapp-secure Pairing S3 WebDAV Kqueue XMPP DNS Feeds Quvi TDFA CryptoHash
+    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
+    remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
+    local repository version: 5
+    supported repository version: 5
+    upgrade supported from repository versions: 0 1 2 4

diff --git a/doc/forum/Changing_files_during_git_annex_runs.mdwn b/doc/forum/Changing_files_during_git_annex_runs.mdwn
new file mode 100644
index 0000000..7ff362d
--- /dev/null
+++ b/doc/forum/Changing_files_during_git_annex_runs.mdwn
@@ -0,0 +1,12 @@
+Hello,
+
+I have my music git annexed, direct mode. It's about 30k files of 429GB size. Some actions take considerable time (sync, add and of course transfer to/from other repos). During this time I don't hear music because of my player changes files. :-(
+
+When is it a problem when a files changes during git annex operations?
+
+git annex get gives a wrong checksum I guess and you need to re-transfer later.
+
+What about git annex add?
+
+Thx!
+Florian

diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
index 261fe29..2865441 100644
--- a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
@@ -1,3 +1,5 @@
+Posting this here because I am not sure if it is a bug or if I am missing something.
+
 I have a ~10 GB file in git-annex. I can't get it to go to S3 whatever I do.
 
 I added a S3 special remote:

diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
index 6b7311b..261fe29 100644
--- a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
@@ -34,7 +34,7 @@ It didn't work. Same result.
     supported repository version: 5
     upgrade supported from repository versions: 0 1 2 4
 
-The chunk size did seem to bet set properly:
+The chunk size did seem to be set properly:
 
     $ git checkout git-annex
     $ cat remote.log

diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
index 3661c12..6b7311b 100644
--- a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
@@ -20,8 +20,8 @@ Then, I tried copying files to the remote.  Small files worked, but big files do
 
 I tried some stuff like this too:
 
-    git annex enableremote s3-oregon chunk=100MiB
-    git annex enableremote s3-oregon chunksize=100MiB
+    git annex enableremote s3-mybucket chunk=100MiB
+    git annex enableremote s3-mybucket chunksize=100MiB
 
 It didn't work. Same result.
 

diff --git a/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
new file mode 100644
index 0000000..3661c12
--- /dev/null
+++ b/doc/forum/Copying_to_S3_does_not_work_-_chunking_does_not_work.mdwn
@@ -0,0 +1,45 @@
+I have a ~10 GB file in git-annex. I can't get it to go to S3 whatever I do.
+
+I added a S3 special remote:
+
+    git annex initremote s3-mybucket type=S3 chunk=1MiB keyid=ABCD1234 bucket=mybucket
+
+Then, I tried copying files to the remote.  Small files worked, but big files don't:
+
+    $ git annex copy bigfile.tgz --to s3-mybucket
+    copy bigfile.tgz (gpg)
+    You need a passphrase to unlock the secret key for
+    user: "user"
+    2048-bit RSA key, ID ABCD1234, created 2014-10-13 (main key ID ABCD1234)
+
+    (checking s3-mybucket...) (to s3-mybucket...)
+
+      Your proposed upload exceeds the maximum allowed size
+    failed
+    git-annex: copy: 1 failed
+
+I tried some stuff like this too:
+
+    git annex enableremote s3-oregon chunk=100MiB
+    git annex enableremote s3-oregon chunksize=100MiB
+
+It didn't work. Same result.
+
+    $ git annex version
+    git-annex version: 5.20140717
+    build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV FsEvents XMPP DNS Feeds Quvi TDFA CryptoHash
+    key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
+    remote types: git gcrypt S3 bup directory rsync web webdav tahoe glacier ddar hook external
+    local repository version: 5
+    supported repository version: 5
+    upgrade supported from repository versions: 0 1 2 4
+
+The chunk size did seem to bet set properly:
+
+    $ git checkout git-annex
+    $ cat remote.log
+    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx bucket=mybucket chunk=100MiB chunksize=100MiB cipher=....
+
+I'm on OSX 10.9.4 and I installed git-annex via homebrew.
+
+Any ideas?