From bc6ba0cbebf8adef55f7d6104c828e56c9e2d1ca Mon Sep 17 00:00:00 2001
From: "http://claimid.com/strager" <http://claimid.com/strager@web>
Date: Fri, 17 Aug 2012 15:59:49 +0000
Subject: [PATCH 1/8] Added a comment

---
 .../comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment  | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment

diff --git a/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment b/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment
new file mode 100644
index 0000000000..1e10549d37
--- /dev/null
+++ b/doc/design/assistant/blog/day_59__dinner/comment_1_0c1e2d69496473e7e4a2956a2814f5dd._comment
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="http://claimid.com/strager"
+ ip="173.228.13.253"
+ subject="comment 1"
+ date="2012-08-17T15:59:49Z"
+ content="""
+It was fun to have you here!  =]
+
+"""]]

From 45fd6e294ab1ac8b395cbea80b5af8977011d780 Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawlu7K3h7Ry1uDAU_ERYGuqt0LoGNJqGuRo"
 <Nathan@web>
Date: Sat, 18 Aug 2012 00:31:57 +0000
Subject: [PATCH 2/8] Add description of file name related bug.

---
 ...rgument___40__invalid_character__41__.mdwn | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn

diff --git a/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
new file mode 100644
index 0000000000..9126bee643
--- /dev/null
+++ b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
@@ -0,0 +1,79 @@
+What steps will reproduce the problem?
+
+    $ git init a.git
+    Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/
+    $ cd a.git
+    $ git annex init a
+    init a ok
+    (Recording state in git...)
+    $ touch Ren$'\351'
+    $ git annex add Ren$'\351'
+    add René (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Added Rene'."
+    [master (root-commit) a61b796] Added Rene'.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 "Ren\351"
+    $ cd ..
+    $ git clone -o a a.git b.git
+    Cloning into b.git...
+    remote: Counting objects: 13, done.
+    remote: Compressing objects: 100% (9/9), done.
+    remote: Total 13 (delta 1), reused 0 (delta 0)
+    Receiving objects: 100% (13/13), done.
+    Resolving deltas: 100% (1/1), done.
+    $ cd b.git
+    $ git annex copy --from=a --fast -v
+    (merging a/git-annex into git-annex...)
+    copy René 
+    git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)
+    failed
+    (Recording state in git...)
+    git-annex: copy: 1 failed
+
+What is the expected output? What do you see instead?
+
+Expect that files will be copied, but they are not.
+
+What version of git-annex are you using? On what operating system?
+
+    $ echo $LANG
+    en_US.UTF-8
+    $ lsb_release -a
+    No LSB modules are available.
+    Distributor ID:	Ubuntu
+    Description:	Ubuntu 11.10
+    Release:	11.10
+    Codename:	oneiric
+    $ uname -a
+    Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux
+    $ bash --version
+    GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)
+    Copyright (C) 2011 Free Software Foundation, Inc.
+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+
+    This is free software; you are free to change and redistribute it.
+    There is NO WARRANTY, to the extent permitted by law.
+    $ ghc --version
+    The Glorious Glasgow Haskell Compilation System, version 7.4.2
+    $ git annex version
+    git-annex version: 3.20120807
+    local repository version: 3
+    default repository version: 3
+    supported repository versions: 3
+    upgrade supported from repository versions: 0 1 2
+
+Please provide any additional information below.
+
+The problem is related to weird characters in file names.  In the
+above example, the "weird character" is an accented 'e' (entered with
+$'\351' in bash and zsh).  I am able to add the files with weird
+characters in their name to one annex, but I cannot copy them to other
+annexes using `git annex copy`.
+
+The above example is a simplification of a real problem I am
+experiencing.  In my real scenario, the file is not empty.  See the
+attachment for some variations, including with non-empty files.
+
+May be related to these (long-ago fixed) bugs:
+http://git-annex.branchable.com/todo/support-non-utf8-locales/

From fb8f75c2d7ca8542d6288193c37e792f4471e54c Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawlu7K3h7Ry1uDAU_ERYGuqt0LoGNJqGuRo"
 <Nathan@web>
Date: Sat, 18 Aug 2012 00:35:46 +0000
Subject: [PATCH 3/8] Fail to add attachment.

---
 ...rgument___40__invalid_character__41__.mdwn | 148 +++++++++++++++++-
 1 file changed, 147 insertions(+), 1 deletion(-)

diff --git a/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
index 9126bee643..ab5a2e9ee5 100644
--- a/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
+++ b/doc/bugs/commitBuffer:_invalid_argument___40__invalid_character__41__.mdwn
@@ -73,7 +73,153 @@ annexes using `git annex copy`.
 
 The above example is a simplification of a real problem I am
 experiencing.  In my real scenario, the file is not empty.  See the
-attachment for some variations, including with non-empty files.
+attachment for some variations, including with non-empty
+files. UPDATE: I'm not allowed to add attachments. See below.
 
 May be related to these (long-ago fixed) bugs:
 http://git-annex.branchable.com/todo/support-non-utf8-locales/
+
+
+"Attachment": Here are my notes, including more examples:
+
+    Programs I'm using:
+
+    $ echo $LANG
+    en_US.UTF-8
+    $ lsb_release -a
+    No LSB modules are available.
+    Distributor ID:	Ubuntu
+    Description:	Ubuntu 11.10
+    Release:	11.10
+    Codename:	oneiric
+    $ uname -a
+    Linux pdx-desktop 3.0.0-23-generic #39-Ubuntu SMP Thu Jul 19 19:18:53 UTC 2012 i686 i686 i386 GNU/Linux
+    $ bash --version
+    GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)
+    Copyright (C) 2011 Free Software Foundation, Inc.
+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+
+    This is free software; you are free to change and redistribute it.
+    There is NO WARRANTY, to the extent permitted by law.
+    $ ghc --version
+    The Glorious Glasgow Haskell Compilation System, version 7.4.2
+    $ git annex version
+    git-annex version: 3.20120807
+    local repository version: 3
+    default repository version: 3
+    supported repository versions: 3
+    upgrade supported from repository versions: 0 1 2
+
+
+    Simplest way to see problem: one empty file with weird character
+    (accented e: $'\351') in name:
+
+    $ git init a.git
+    Initialized empty Git repository in /var/tmp/git-annex-bug/a.git/.git/
+    $ cd a.git
+    $ git annex init a
+    init a ok
+    (Recording state in git...)
+    $ touch Ren$'\351'
+    $ git annex add Ren$'\351'
+    add René (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Added Rene'."
+    [master (root-commit) a61b796] Added Rene'.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 "Ren\351"
+    $ cd ..
+    $ git clone -o a a.git b.git
+    Cloning into b.git...
+    remote: Counting objects: 13, done.
+    remote: Compressing objects: 100% (9/9), done.
+    remote: Total 13 (delta 1), reused 0 (delta 0)
+    Receiving objects: 100% (13/13), done.
+    Resolving deltas: 100% (1/1), done.
+    $ cd b.git
+    $ git annex copy --from=a --fast -v
+    (merging a/git-annex into git-annex...)
+    copy René 
+    git-annex: /var/tmp/git-annex-bug/b.git/.git/annex/transfer/download/7c5ee764-e8c6-11e1-b0c5-67c6ec1236d6/SHA256-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: commitBuffer: invalid argument (invalid character)
+    failed
+    (Recording state in git...)
+    git-annex: copy: 1 failed
+
+
+    Problem disappears with two empty files:
+
+    $ cd ..
+    $ git init a2.git
+    Initialized empty Git repository in /var/tmp/git-annex-bug/a2.git/.git/
+    $ cd a2.git
+    $ git annex init a2
+    init a2 ok
+    (Recording state in git...)
+    $ touch Ren$'\351'
+    $ git annex add Ren$'\351'
+    add René (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Add Ren$'\351'."
+    [master (root-commit) 62ac1c8] Add Ren$'\351'.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 "Ren\351"
+    $ touch Rene
+    $ git annex add Rene
+    add Rene (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Add Rene."
+    [master c455523] Add Rene.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 Rene
+    $ cd ..
+    $ git clone -o a2 a2.git b2.git
+    Cloning into b2.git...
+    done.
+    $ cd b2.git
+    $ git annex copy --from=a2 --fast -v
+    (merging a2/git-annex into git-annex...)
+    copy Rene (from a2...) ok
+    (Recording state in git...)
+
+
+    Problem returns with two non-empty files:
+
+    $ cd ..
+    $ git init a4.git
+    Initialized empty Git repository in /var/tmp/git-annex-bug/a4.git/.git/
+    $ cd a4.git
+    $ git annex init a4
+    init a4 ok
+    (Recording state in git...)
+    $ touch Ren$'\351'
+    $ rm Ren$'\351'
+    $ ls
+    $ echo "some content" > Ren$'\351'
+    $ git annex add Ren$'\351'
+    add René (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Add Ren$'\351'."
+    [master (root-commit) f090d90] Add Ren$'\351'.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 "Ren\351"
+    $ echo "some other content" > Rene
+    $ git annex add Rene
+    add Rene (checksum...) ok
+    (Recording state in git...)
+    $ git ci -m "Add Rene."
+    [master 97c20cd] Add Rene.
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 Rene
+    $ cd ..
+    $ git clone -o a4 a4.git b4.git
+    Cloning into b4.git...
+    done.
+    $ cd b4.git
+    $ git annex copy --from=a4 --fast -v
+    (merging a4/git-annex into git-annex...)
+    copy Rene (from a4...) ok
+    copy René 
+    git-annex: /var/tmp/git-annex-bug/b4.git/.git/annex/transfer/download/a5fcd0d4-e8c8-11e1-bb41-43ce1cb9a9f1/SHA256-s13--1c87b6727f523662df714f06a94ea27fa4d9050c38f4f7712bd4663ffbfdfa01: commitBuffer: invalid argument (invalid character)
+    failed
+    (Recording state in git...)
+    git-annex: copy: 1 failed

From 81cdfe98a666ebee328c8a4a1d62675c2abbfd5b Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawla3gLc6_rHuggFfy7o7eGMPvPztFZTrUQ"
 <Florian@web>
Date: Mon, 20 Aug 2012 10:49:41 +0000
Subject: [PATCH 4/8]

---
 ...ld_leave_file_in_place_on_checksum_mismatch.mdwn | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn

diff --git a/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn b/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn
new file mode 100644
index 0000000000..d7eaa7d1b5
--- /dev/null
+++ b/doc/bugs/reinject_should_leave_file_in_place_on_checksum_mismatch.mdwn
@@ -0,0 +1,13 @@
+What steps will reproduce the problem?
+
+Run git annex reinject source dest with a file that has the wrong content and thus a wrong checksum.
+
+What is the expected output? What do you see instead?
+
+The file should stay in it's original location. Currently it's moved to .git/annex/bad with a mangled filename.
+
+What version of git-annex are you using? On what operating system?
+
+git-annex version: 3.20120807
+Ubuntu 12.04 updated on Aug 20th
+annex was installed via cabal on Aug 20th, all other packages are from ubuntu.

From 833fbd8ff21c40fb94df5dcd7a77aa0d4dff41df Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawla3gLc6_rHuggFfy7o7eGMPvPztFZTrUQ"
 <Florian@web>
Date: Mon, 20 Aug 2012 11:28:25 +0000
Subject: [PATCH 5/8]

---
 ...sck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn

diff --git a/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn b/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn
new file mode 100644
index 0000000000..a676551e84
--- /dev/null
+++ b/doc/bugs/fsck_thinks_file_content_is_bad_when_it_isn__39__t.mdwn
@@ -0,0 +1,8 @@
+What steps will reproduce the problem?
+What is the expected output? What do you see instead?
+
+I can reproduce it locally, but don't know what's causing it. The file content is the same, I checked with md5sum and sha512sum. But fsck still thinks the content is different. Are there other factors I could check which fsck looks at? I'm using SHA512E backend.
+
+What version of git-annex are you using? On what operating system?
+
+git-annex version: 3.20120807 Ubuntu 12.04 updated on Aug 20th annex was installed via cabal on Aug 20th, all other packages are from ubuntu.

From 0a6da4f6332b5c4e0c24dcaacb5a22bafbf4a2a4 Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"
 <Hans@web>
Date: Mon, 20 Aug 2012 14:27:47 +0000
Subject: [PATCH 6/8] Added a comment: error: unknown option `no-edit'

---
 ..._2f06268709880ce09148e6465bda3fea._comment | 358 ++++++++++++++++++
 1 file changed, 358 insertions(+)
 create mode 100644 doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment

diff --git a/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment b/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment
new file mode 100644
index 0000000000..3a72108ad5
--- /dev/null
+++ b/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment
@@ -0,0 +1,358 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"
+ nickname="Hans"
+ subject="error: unknown option `no-edit'"
+ date="2012-08-20T14:27:47Z"
+ content="""
+This might be a bug, or just me not understanding how to operate git-annex
+
+I'm on git-annex version: 3.20120629~bpo60+1
+
+
+Two computers will be used in the following hans-vita and ij
+
+At hans-vita
+
+    mkdir test
+    cd test
+    git init
+    git annex init \"my laptop\"
+    echo \"some data\" > my.file
+    git annex add my.file
+
+At ij I now clone hans-vita
+
+    git clone ssh://hans-vita/home/hans/test ~/test
+    Cloning into /home/hans/test...
+    remote: Counting objects: 10, done.
+    remote: Compressing objects: 100% (7/7), done.
+    remote: Total 10 (delta 1), reused 0 (delta 0)
+    Receiving objects: 100% (10/10), done.
+    Resolving deltas: 100% (1/1), done.
+    warning: remote HEAD refers to nonexistent ref, unable to checkout.
+
+Should I worry about that warning?
+
+Continuing, inspite of the warning, at ij
+
+    cd ~/test
+    git annex init \"my desktop\"
+    init my desktop ok
+    (Recording state in git...)
+
+The contents of .git/config at ij is now
+
+    cat .git/config 
+    [core]
+            repositoryformatversion = 0
+            filemode = true
+            bare = false
+            logallrefupdates = true
+    [remote \"origin\"]
+            fetch = +refs/heads/*:refs/remotes/origin/*
+            url = ssh://hans-vita/home/hans/test
+    [annex]
+            uuid = 415c56ba-eac9-11e1-b0a2-27785ae2fd77
+        version = 3
+
+hans-vita needs to be informed about ij, so it has something to sync against
+
+    git remote add ij ssh://ij/home/hans/test
+
+Which makes .git/config at hans-vita look as:
+
+    [core]
+            repositoryformatversion = 0
+            filemode = true
+            bare = false
+            logallrefupdates = true
+    [annex]
+            uuid = 76804bf4-eac8-11e1-8c9b-078f858a8817
+            version = 3
+    [remote \"ij\"]
+            url = ssh://ij/home/hans/test
+            fetch = +refs/heads/*:refs/remotes/ij/*
+
+git-annex status on hans-vita says
+
+    git-annex status
+    supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
+    supported remote types: git bup directory rsync web hook
+    trusted repositories: (merging origin/git-annex into git-annex...)
+    0
+    semitrusted repositories: 3
+            00000000-0000-0000-0000-000000000001 -- web
+            415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
+            76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
+    untrusted repositories: 0
+    dead repositories: 0
+    available local disk space: 369 gigabytes (+1 megabyte reserved)
+    local annex keys: 0
+    local annex size: 0 bytes
+    known annex keys: 0
+    known annex size: 0 bytes
+    backend usage: 
+
+And on ij, it says
+
+    git-annex status
+    supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
+    supported remote types: git bup directory rsync web hook
+    trusted repositories: (merging origin/git-annex into git-annex...)
+    0
+    semitrusted repositories: 3
+            00000000-0000-0000-0000-000000000001 -- web
+            415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
+            76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
+    untrusted repositories: 0
+    dead repositories: 0
+    available local disk space: 369 gigabytes (+1 megabyte reserved)
+    local annex keys: 0
+    local annex size: 0 bytes
+    known annex keys: 0
+    known annex size: 0 bytes
+    backend usage: 
+
+OK, let's try to sync, start at hans-vita
+
+    git-annex sync
+    commit  
+    fatal: No HEAD commit to compare with (yet)
+    fatal: No HEAD commit to compare with (yet)
+    [master (root-commit) 6fdc775] git-annex automatic sync
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 my.file
+    ok
+    pull ij 
+    remote: Counting objects: 10, done.
+    remote: Compressing objects: 100% (6/6), done.
+    remote: Total 8 (delta 2), reused 1 (delta 0)
+    Unpacking objects: 100% (8/8), done.
+    From ssh://ij/home/hans/test
+     * [new branch]      git-annex  -> ij/git-annex
+    ok
+    (merging ij/git-annex into git-annex...)
+    push ij 
+    Counting objects: 3, done.
+    Delta compression using up to 2 threads.
+    Compressing objects: 100% (2/2), done.
+    Writing objects: 100% (3/3), 319 bytes, done.
+    Total 3 (delta 0), reused 0 (delta 0)
+    To ssh://ij/home/hans/test
+     * [new branch]      master -> synced/master
+    ok
+
+Got two errors, but I guess that is because ij never have run git-annex sync, so there are missing branches.
+
+Try, for the first time ever, git-annex sync from ij:
+
+    git-annex sync
+    commit  
+    fatal: No HEAD commit to compare with (yet)
+    fatal: No HEAD commit to compare with (yet)
+    # On branch master
+    #
+    # Initial commit
+    #
+    nothing to commit (create/copy files and use \"git add\" to track)
+    ok
+    fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
+    Use '--' to separate paths from revisions
+    pull origin 
+    From ssh://hans-vita/home/hans/test
+       bd89f87..9c983a5  git-annex  -> origin/git-annex
+     * [new branch]      master     -> origin/master
+     * [new branch]      synced/master -> origin/synced/master
+    fatal: ambiguous argument 'refs/heads/master..refs/remotes/origin/master': unknown revision or path not in the working tree.
+    Use '--' to separate paths from revisions
+    ok
+    fatal: Not a valid object name: 'master'.
+    git-annex: failed to update refs/heads/synced/master
+
+No joy.
+
+What is missing? Some branch? hans-vita has 
+
+    git branch
+     git-annex
+     * master
+     synced/master
+
+    git branch
+     git-annex
+     synced/master
+
+Does ij need a master of its own? The walkthrough was not enough here for me to understand the requirement, but <http://git-annex.branchable.com/forum/git_pull_remote_git-annex/#comment-e024054af990df6130f9f0a42a6de27a> made me believe that
+
+I need to do this from ij:
+
+    git fetch
+    git merge/master
+
+So I did that, and tried again with git-annex sync from ij
+
+    git-annex sync
+    commit  
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+    pull origin 
+    ok
+
+Great, now, what happens when hans-vita tries to sync?
+
+    git-annex sync
+    commit  
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+    pull ij 
+    From ssh://ij/home/hans/test
+     * [new branch]      master     -> ij/master
+    ok
+
+It picks up the new branch at ij, good.
+
+But after I add a file at ij, hans-vita will not sync again. First, here is how I add the file from ij:
+
+    cp ../qog.tex .
+    git-annex add .
+    add qog.tex (checksum...) ok
+    (Recording state in git...)
+    git-annex sync
+    commit  
+    [master 25e00c5] git-annex automatic sync
+     Committer: Hans Ekbrand <hans@my.domain>
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 qog.tex
+    ok
+    pull origin 
+    ok
+    push origin 
+    Counting objects: 10, done.
+    Delta compression using up to 2 threads.
+    Compressing objects: 100% (7/7), done.
+    Writing objects: 100% (8/8), 868 bytes, done.
+    Total 8 (delta 0), reused 0 (delta 0)
+    To ssh://hans-vita/home/hans/test
+       9c983a5..19b0a0c  git-annex -> git-annex
+       6fdc775..25e00c5  master -> synced/master
+    ok
+
+Now, from hans-vita I try git-annex sync
+
+    git-annex sync
+    commit  
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+    merge synced/master 
+    error: unknown option `no-edit'
+    usage: git merge [options] <remote>...
+       or: git merge [options] <msg> HEAD <remote>
+    
+        -n                    do not show a diffstat at the end of the merge
+        --stat                show a diffstat at the end of the merge
+        --summary             (synonym to --stat)
+        --log                 add list of one-line log to merge commit message
+        --squash              create a single commit instead of doing a merge
+        --commit              perform a commit if the merge succeeds (default)
+        --ff                  allow fast-forward (default)
+        --ff-only             abort if fast-forward is not possible
+        --rerere-autoupdate   update the index with reused conflict resolution if possible
+        -s, --strategy <strategy>
+                              merge strategy to use
+        -X, --strategy-option <option=value>
+                              option for selected merge strategy
+        -m, --message <message>
+                              message to be used for the merge commit (if any)
+        -v, --verbose         be more verbose
+        -q, --quiet           be more quiet
+    
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+    pull ij 
+    From ssh://ij/home/hans/test
+       9c983a5..19b0a0c  git-annex  -> ij/git-annex
+       6fdc775..25e00c5  master     -> ij/master
+       6fdc775..25e00c5  synced/master -> ij/synced/master
+    
+    error: unknown option `no-edit'
+    usage: git merge [options] <remote>...
+       or: git merge [options] <msg> HEAD <remote>
+    
+        -n                    do not show a diffstat at the end of the merge
+        --stat                show a diffstat at the end of the merge
+        --summary             (synonym to --stat)
+        --log                 add list of one-line log to merge commit message
+        --squash              create a single commit instead of doing a merge
+        --commit              perform a commit if the merge succeeds (default)
+        --ff                  allow fast-forward (default)
+        --ff-only             abort if fast-forward is not possible
+        --rerere-autoupdate   update the index with reused conflict resolution if possible
+        -s, --strategy <strategy>
+                              merge strategy to use
+        -X, --strategy-option <option=value>
+                              option for selected merge strategy
+        -m, --message <message>
+                              message to be used for the merge commit (if any)
+        -v, --verbose         be more verbose
+        -q, --quiet           be more quiet
+    
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+
+I can get the change with pure git, though:
+
+    git fetch ij
+    git merge ij/master
+    Updating 6fdc775..25e00c5
+    Fast-forward
+     qog.tex |    1 +
+     1 files changed, 1 insertions(+), 0 deletions(-)
+     create mode 120000 qog.tex
+
+but git-annex sync no longer works from hans-vita
+
+    git-annex sync
+    commit  
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+    pull ij 
+    
+    error: unknown option `no-edit'
+    usage: git merge [options] <remote>...
+       or: git merge [options] <msg> HEAD <remote>
+    
+        -n                    do not show a diffstat at the end of the merge
+        --stat                show a diffstat at the end of the merge
+        --summary             (synonym to --stat)
+        --log                 add list of one-line log to merge commit message
+        --squash              create a single commit instead of doing a merge
+        --commit              perform a commit if the merge succeeds (default)
+        --ff                  allow fast-forward (default)
+        --ff-only             abort if fast-forward is not possible
+        --rerere-autoupdate   update the index with reused conflict resolution if possible
+        -s, --strategy <strategy>
+                          merge strategy to use
+    -X, --strategy-option <option=value>
+                          option for selected merge strategy
+    -m, --message <message>
+                          message to be used for the merge commit (if any)
+    -v, --verbose         be more verbose
+    -q, --quiet           be more quiet
+
+    # On branch master
+    nothing to commit (working directory clean)
+    ok
+
+What did I do wrong?
+
+
+
+
+
+"""]]

From 0237d7707196c5f85bd9df077d2f21b5b0853453 Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"
 <Hans@web>
Date: Mon, 20 Aug 2012 14:44:08 +0000
Subject: [PATCH 7/8] removed

---
 ..._2f06268709880ce09148e6465bda3fea._comment | 358 ------------------
 1 file changed, 358 deletions(-)
 delete mode 100644 doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment

diff --git a/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment b/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment
deleted file mode 100644
index 3a72108ad5..0000000000
--- a/doc/sync/comment_2_2f06268709880ce09148e6465bda3fea._comment
+++ /dev/null
@@ -1,358 +0,0 @@
-[[!comment format=mdwn
- username="https://www.google.com/accounts/o8/id?id=AItOawkS6aFVrEwOrDuQBTMXxtGHtueA69NS_jo"
- nickname="Hans"
- subject="error: unknown option `no-edit'"
- date="2012-08-20T14:27:47Z"
- content="""
-This might be a bug, or just me not understanding how to operate git-annex
-
-I'm on git-annex version: 3.20120629~bpo60+1
-
-
-Two computers will be used in the following hans-vita and ij
-
-At hans-vita
-
-    mkdir test
-    cd test
-    git init
-    git annex init \"my laptop\"
-    echo \"some data\" > my.file
-    git annex add my.file
-
-At ij I now clone hans-vita
-
-    git clone ssh://hans-vita/home/hans/test ~/test
-    Cloning into /home/hans/test...
-    remote: Counting objects: 10, done.
-    remote: Compressing objects: 100% (7/7), done.
-    remote: Total 10 (delta 1), reused 0 (delta 0)
-    Receiving objects: 100% (10/10), done.
-    Resolving deltas: 100% (1/1), done.
-    warning: remote HEAD refers to nonexistent ref, unable to checkout.
-
-Should I worry about that warning?
-
-Continuing, inspite of the warning, at ij
-
-    cd ~/test
-    git annex init \"my desktop\"
-    init my desktop ok
-    (Recording state in git...)
-
-The contents of .git/config at ij is now
-
-    cat .git/config 
-    [core]
-            repositoryformatversion = 0
-            filemode = true
-            bare = false
-            logallrefupdates = true
-    [remote \"origin\"]
-            fetch = +refs/heads/*:refs/remotes/origin/*
-            url = ssh://hans-vita/home/hans/test
-    [annex]
-            uuid = 415c56ba-eac9-11e1-b0a2-27785ae2fd77
-        version = 3
-
-hans-vita needs to be informed about ij, so it has something to sync against
-
-    git remote add ij ssh://ij/home/hans/test
-
-Which makes .git/config at hans-vita look as:
-
-    [core]
-            repositoryformatversion = 0
-            filemode = true
-            bare = false
-            logallrefupdates = true
-    [annex]
-            uuid = 76804bf4-eac8-11e1-8c9b-078f858a8817
-            version = 3
-    [remote \"ij\"]
-            url = ssh://ij/home/hans/test
-            fetch = +refs/heads/*:refs/remotes/ij/*
-
-git-annex status on hans-vita says
-
-    git-annex status
-    supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
-    supported remote types: git bup directory rsync web hook
-    trusted repositories: (merging origin/git-annex into git-annex...)
-    0
-    semitrusted repositories: 3
-            00000000-0000-0000-0000-000000000001 -- web
-            415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
-            76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
-    untrusted repositories: 0
-    dead repositories: 0
-    available local disk space: 369 gigabytes (+1 megabyte reserved)
-    local annex keys: 0
-    local annex size: 0 bytes
-    known annex keys: 0
-    known annex size: 0 bytes
-    backend usage: 
-
-And on ij, it says
-
-    git-annex status
-    supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL
-    supported remote types: git bup directory rsync web hook
-    trusted repositories: (merging origin/git-annex into git-annex...)
-    0
-    semitrusted repositories: 3
-            00000000-0000-0000-0000-000000000001 -- web
-            415c56ba-eac9-11e1-b0a2-27785ae2fd77 -- here (my desktop)
-            76804bf4-eac8-11e1-8c9b-078f858a8817 -- origin (my laptop)
-    untrusted repositories: 0
-    dead repositories: 0
-    available local disk space: 369 gigabytes (+1 megabyte reserved)
-    local annex keys: 0
-    local annex size: 0 bytes
-    known annex keys: 0
-    known annex size: 0 bytes
-    backend usage: 
-
-OK, let's try to sync, start at hans-vita
-
-    git-annex sync
-    commit  
-    fatal: No HEAD commit to compare with (yet)
-    fatal: No HEAD commit to compare with (yet)
-    [master (root-commit) 6fdc775] git-annex automatic sync
-     1 files changed, 1 insertions(+), 0 deletions(-)
-     create mode 120000 my.file
-    ok
-    pull ij 
-    remote: Counting objects: 10, done.
-    remote: Compressing objects: 100% (6/6), done.
-    remote: Total 8 (delta 2), reused 1 (delta 0)
-    Unpacking objects: 100% (8/8), done.
-    From ssh://ij/home/hans/test
-     * [new branch]      git-annex  -> ij/git-annex
-    ok
-    (merging ij/git-annex into git-annex...)
-    push ij 
-    Counting objects: 3, done.
-    Delta compression using up to 2 threads.
-    Compressing objects: 100% (2/2), done.
-    Writing objects: 100% (3/3), 319 bytes, done.
-    Total 3 (delta 0), reused 0 (delta 0)
-    To ssh://ij/home/hans/test
-     * [new branch]      master -> synced/master
-    ok
-
-Got two errors, but I guess that is because ij never have run git-annex sync, so there are missing branches.
-
-Try, for the first time ever, git-annex sync from ij:
-
-    git-annex sync
-    commit  
-    fatal: No HEAD commit to compare with (yet)
-    fatal: No HEAD commit to compare with (yet)
-    # On branch master
-    #
-    # Initial commit
-    #
-    nothing to commit (create/copy files and use \"git add\" to track)
-    ok
-    fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
-    Use '--' to separate paths from revisions
-    pull origin 
-    From ssh://hans-vita/home/hans/test
-       bd89f87..9c983a5  git-annex  -> origin/git-annex
-     * [new branch]      master     -> origin/master
-     * [new branch]      synced/master -> origin/synced/master
-    fatal: ambiguous argument 'refs/heads/master..refs/remotes/origin/master': unknown revision or path not in the working tree.
-    Use '--' to separate paths from revisions
-    ok
-    fatal: Not a valid object name: 'master'.
-    git-annex: failed to update refs/heads/synced/master
-
-No joy.
-
-What is missing? Some branch? hans-vita has 
-
-    git branch
-     git-annex
-     * master
-     synced/master
-
-    git branch
-     git-annex
-     synced/master
-
-Does ij need a master of its own? The walkthrough was not enough here for me to understand the requirement, but <http://git-annex.branchable.com/forum/git_pull_remote_git-annex/#comment-e024054af990df6130f9f0a42a6de27a> made me believe that
-
-I need to do this from ij:
-
-    git fetch
-    git merge/master
-
-So I did that, and tried again with git-annex sync from ij
-
-    git-annex sync
-    commit  
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-    pull origin 
-    ok
-
-Great, now, what happens when hans-vita tries to sync?
-
-    git-annex sync
-    commit  
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-    pull ij 
-    From ssh://ij/home/hans/test
-     * [new branch]      master     -> ij/master
-    ok
-
-It picks up the new branch at ij, good.
-
-But after I add a file at ij, hans-vita will not sync again. First, here is how I add the file from ij:
-
-    cp ../qog.tex .
-    git-annex add .
-    add qog.tex (checksum...) ok
-    (Recording state in git...)
-    git-annex sync
-    commit  
-    [master 25e00c5] git-annex automatic sync
-     Committer: Hans Ekbrand <hans@my.domain>
-     1 files changed, 1 insertions(+), 0 deletions(-)
-     create mode 120000 qog.tex
-    ok
-    pull origin 
-    ok
-    push origin 
-    Counting objects: 10, done.
-    Delta compression using up to 2 threads.
-    Compressing objects: 100% (7/7), done.
-    Writing objects: 100% (8/8), 868 bytes, done.
-    Total 8 (delta 0), reused 0 (delta 0)
-    To ssh://hans-vita/home/hans/test
-       9c983a5..19b0a0c  git-annex -> git-annex
-       6fdc775..25e00c5  master -> synced/master
-    ok
-
-Now, from hans-vita I try git-annex sync
-
-    git-annex sync
-    commit  
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-    merge synced/master 
-    error: unknown option `no-edit'
-    usage: git merge [options] <remote>...
-       or: git merge [options] <msg> HEAD <remote>
-    
-        -n                    do not show a diffstat at the end of the merge
-        --stat                show a diffstat at the end of the merge
-        --summary             (synonym to --stat)
-        --log                 add list of one-line log to merge commit message
-        --squash              create a single commit instead of doing a merge
-        --commit              perform a commit if the merge succeeds (default)
-        --ff                  allow fast-forward (default)
-        --ff-only             abort if fast-forward is not possible
-        --rerere-autoupdate   update the index with reused conflict resolution if possible
-        -s, --strategy <strategy>
-                              merge strategy to use
-        -X, --strategy-option <option=value>
-                              option for selected merge strategy
-        -m, --message <message>
-                              message to be used for the merge commit (if any)
-        -v, --verbose         be more verbose
-        -q, --quiet           be more quiet
-    
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-    pull ij 
-    From ssh://ij/home/hans/test
-       9c983a5..19b0a0c  git-annex  -> ij/git-annex
-       6fdc775..25e00c5  master     -> ij/master
-       6fdc775..25e00c5  synced/master -> ij/synced/master
-    
-    error: unknown option `no-edit'
-    usage: git merge [options] <remote>...
-       or: git merge [options] <msg> HEAD <remote>
-    
-        -n                    do not show a diffstat at the end of the merge
-        --stat                show a diffstat at the end of the merge
-        --summary             (synonym to --stat)
-        --log                 add list of one-line log to merge commit message
-        --squash              create a single commit instead of doing a merge
-        --commit              perform a commit if the merge succeeds (default)
-        --ff                  allow fast-forward (default)
-        --ff-only             abort if fast-forward is not possible
-        --rerere-autoupdate   update the index with reused conflict resolution if possible
-        -s, --strategy <strategy>
-                              merge strategy to use
-        -X, --strategy-option <option=value>
-                              option for selected merge strategy
-        -m, --message <message>
-                              message to be used for the merge commit (if any)
-        -v, --verbose         be more verbose
-        -q, --quiet           be more quiet
-    
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-
-I can get the change with pure git, though:
-
-    git fetch ij
-    git merge ij/master
-    Updating 6fdc775..25e00c5
-    Fast-forward
-     qog.tex |    1 +
-     1 files changed, 1 insertions(+), 0 deletions(-)
-     create mode 120000 qog.tex
-
-but git-annex sync no longer works from hans-vita
-
-    git-annex sync
-    commit  
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-    pull ij 
-    
-    error: unknown option `no-edit'
-    usage: git merge [options] <remote>...
-       or: git merge [options] <msg> HEAD <remote>
-    
-        -n                    do not show a diffstat at the end of the merge
-        --stat                show a diffstat at the end of the merge
-        --summary             (synonym to --stat)
-        --log                 add list of one-line log to merge commit message
-        --squash              create a single commit instead of doing a merge
-        --commit              perform a commit if the merge succeeds (default)
-        --ff                  allow fast-forward (default)
-        --ff-only             abort if fast-forward is not possible
-        --rerere-autoupdate   update the index with reused conflict resolution if possible
-        -s, --strategy <strategy>
-                          merge strategy to use
-    -X, --strategy-option <option=value>
-                          option for selected merge strategy
-    -m, --message <message>
-                          message to be used for the merge commit (if any)
-    -v, --verbose         be more verbose
-    -q, --quiet           be more quiet
-
-    # On branch master
-    nothing to commit (working directory clean)
-    ok
-
-What did I do wrong?
-
-
-
-
-
-"""]]

From 76b9ca0799f999a7379cdf1458f50ee48ddef885 Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawlup4hyZo4eCjF8T85vfRXMKBxGj9bMdl0"
 <Ben@web>
Date: Mon, 20 Aug 2012 17:25:36 +0000
Subject: [PATCH 8/8]

---
 ...e_install_can__39__t_be_used_with_sudo.mdwn | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn

diff --git a/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn b/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn
new file mode 100644
index 0000000000..6cb1365868
--- /dev/null
+++ b/doc/bugs/make_install_can__39__t_be_used_with_sudo.mdwn
@@ -0,0 +1,18 @@
+What steps will reproduce the problem?
+In the git-annex tree,
+
+    $ make
+    $ sudo make install
+
+What is the expected output? What do you see instead?
+
+One would expect git-annex to be installed in the configured prefix. Unfortunately, make tries to rebuild the "all" target before "install". This fails (presumably) due to incorrect environment state,
+
+    ghc -O2 -Wall -ignore-package monads-fd -ignore-package monads-tf -outputdir tmp -IUtility -DWITH_ASSISTANT -DWITH_S3 -DWITH_INOTIFY --make git-annex Utility/libdiskfree.o
+    
+    Utility/FileSystemEncoding.hs:17:8:
+        Could not find module `Data.Bits.Utils':
+          Use -v to see a list of the files searched for.
+    make: *** [git-annex] Error 1
+
+Removing "all" from the dependencies of "install" allows the process to run to completion, although this is clearly not a satisfactory solution.