summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-05-16 01:07:16 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-05-16 01:07:16 -0400
commitfa0dee959f1a79a7b265b8f7db481c0e3b335df7 (patch)
tree7701fe707c166f6e496498797489c8d8b408a17e
parent3a477c1376b02b621063dc1549172a272bc408d5 (diff)
parentd0ec6cb71853f20e6d67eed864cb4186a4f50479 (diff)
Merge branch 'master' of ssh://git-annex.branchable.com
-rw-r--r--doc/bugs/SMB__58___git_annex_clone_works__44___get_fails_on_transfer_lock/comment_3_24c6874757783e3c3838db35174870d1._comment86
-rw-r--r--doc/bugs/add_fails_with_v6_repo_when_four_levels_deep/comment_9_9b91f93a66d3e38edc4490be20445a6d._comment14
-rw-r--r--doc/bugs/git-annex_in_nixpkgs_fails_with_git-2.13.0.mdwn357
-rw-r--r--doc/bugs/glacier.mdwn99
-rw-r--r--doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking.mdwn215
-rw-r--r--doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking/comment_1_562cf3ab3398c1ef874c0bfe5d89e47b._comment10
-rw-r--r--doc/forum/Fix_wrong_rsync_with_git_annex_reinit__63__.mdwn38
-rw-r--r--doc/git-annex-adjust.mdwn2
8 files changed, 820 insertions, 1 deletions
diff --git a/doc/bugs/SMB__58___git_annex_clone_works__44___get_fails_on_transfer_lock/comment_3_24c6874757783e3c3838db35174870d1._comment b/doc/bugs/SMB__58___git_annex_clone_works__44___get_fails_on_transfer_lock/comment_3_24c6874757783e3c3838db35174870d1._comment
new file mode 100644
index 000000000..c549c1972
--- /dev/null
+++ b/doc/bugs/SMB__58___git_annex_clone_works__44___get_fails_on_transfer_lock/comment_3_24c6874757783e3c3838db35174870d1._comment
@@ -0,0 +1,86 @@
+[[!comment format=mdwn
+ username="ewen"
+ avatar="http://cdn.libravatar.org/avatar/605b2981cb52b4af268455dee7a4f64e"
+ subject="dtruss OS X 10.11 git annex on SMB mount"
+ date="2017-05-14T05:04:29Z"
+ content="""
+A tar file with:
+
+ ewen@ashram:~/Desktop$ tar -tzf dtruss-git-annex-osx-smb-2017-05-14.tar.gz
+ dtruss-git-annex-osx-smb-2017-05-14/
+ dtruss-git-annex-osx-smb-2017-05-14/00-ga-test-smb-osx-symlinks-2017-05-14.script
+ dtruss-git-annex-osx-smb-2017-05-14/01-ga-test-smb-osx-symlinks-dtruss-git-annex-init-2017-05-14.txt
+ dtruss-git-annex-osx-smb-2017-05-14/02-ga-test-smb-osx-symlinks-dtruss-git-annex-sync-2017-05-14.txt
+ dtruss-git-annex-osx-smb-2017-05-14/03-ga-test-smb-osx-symlinks-dtruss-git-annex-get-all-2017-05-14.txt
+ dtruss-git-annex-osx-smb-2017-05-14/04-ga-test-smb-osx-symlinks-dtruss-git-annex-sync-other-way-2017-05-14.txt
+ dtruss-git-annex-osx-smb-2017-05-14/05-ga-test-smb-osx-symlinks-dtruss-git-annex-copy-to-smb-2017-05-14.txt
+ dtruss-git-annex-osx-smb-2017-05-14/dtruss-ga
+ ewen@ashram:~/Desktop$
+
+is available at [dtruss-git-annex-osx-smb-2017-05-14.tar.gz](http://ewen.mcneill.gen.nz/temp/dtruss-git-annex-osx-smb-2017-05-14.tar.gz) (at least until I next tidy up the `/temp/` directory :-) ).
+
+The script file is the output of \"`script ....`\" showing all the commands (including typos :-) ) run, except the `dtruss` ones themselves. The various `0n-ga-tst-smb-osx-symlinks-dtruss...` files contain the output of \"`sudo dtruss -af PID`\" where the `PID` was printed out by the script `dtruss-ga` that is included in the archive. `dtruss-ga` was used to enable running git-annex as non-root (to ensure that the SMB access wasn't altered by running as a different user), since `dtruss` itself can only run as root. The script is just:
+
+ ewen@ashram:~/Desktop$ cat dtruss-git-annex-osx-smb-2017-05-14/dtruss-ga
+ #! /bin/sh
+ # Allow dtruss of non-root git annex
+ #
+ # Based on hints at:
+ # http://sec.cs.ucl.ac.uk/users/smurdoch/blog/2015/08/fixing-slow-start-mc-on-osx.html
+ #---------------------------------------------------------------------------
+
+ echo \"Run: sudo dtruss -af -p $$\"
+ echo \"Then press enter\"
+ read
+ exec git annex \"$@\"
+ ewen@ashram:~/Desktop$
+
+so basically \"print PID, wait for go ahead, run git annex command\".
+
+From a quick glance through, it looks like:
+
+ 7003/0x16c3126: 121576 14 11 write(0x12, \"PidLock {lockingPid = 7003, lockingHost = \\"ashram\\"}\0\", 0x33) = 51 0
+ 7003/0x16c3126: 121775 3350 191 close(0x12) = 0 0
+ 7003/0x16c3126: 121792 10 6 stat64(\"/Volumes/music/ga-test/.git/annex/locktmp16807282475249\0\", 0x200004940, 0x33) = 0 0
+ 7003/0x16c3126: 122041 2341 235 link(\"/Volumes/music/ga-test/.git/annex/locktmp16807282475249\0\", \"/Volumes/music/ga-test/.git/annex/locktmp16807282475249.lnk\0\") = -1 Err#45
+ 7003/0x16c3126: 122115 885 49 unlink(\"/Volumes/music/ga-test/.git/annex/locktmp16807282475249.lnk\0\", 0x200004D80, 0x33) = -1 Err#2
+
+(in `03-...`, the first `get`) probably isn't helping -- that's trying to do a *hardlink* on a SMB file system, and appearing to give up when it fails... (`/Volumes/music` is the SMB mount I was using for testing).
+
+Also since I didn't realise until after the `script` file/`tar` file were made, there *is* an `annex/pidlock` file:
+
+ ewen@ashram:~$ ls -l /Volumes/music/ga-test/.git/annex/pidlock
+ -rwx------ 1 ewen staff 51 14 May 16:25 /Volumes/music/ga-test/.git/annex/pidlock
+ ewen@ashram:~$ cat /Volumes/music/ga-test/.git/annex/pidlock
+ PidLock {lockingPid = 7143, lockingHost = \"ashram\"}ewen@ashram:~$
+ ewen@ashram:~$
+
+created within the SMB `git-annex`, which looks vaguely sensible. And FTR, there is *not* one in the HFS (local OS X) `git-annex`:
+
+ ewen@ashram:~$ ls -l /var/tmp/ga-test/.git/annex/pidlock
+ ls: /var/tmp/ga-test/.git/annex/pidlock: No such file or directory
+ ewen@ashram:~$
+
+so it definitely seems to *try* to do pidlocking on the SMB mount on transfers, but it looks like maybe it's also trying to do something *not* supported.
+
+Looking through the OS X `open(2)` manpage, it appears that:
+
+ O_EXCL error if O_CREAT and the file exists
+ [...]
+ O_EXLOCK atomically obtain an exclusive lock
+
+might be plausible non-hardlink locking primitives that'd work better than nothing. The manpage also says:
+
+ When opening a file, a lock with flock(2) semantics can be obtained by
+ setting O_SHLOCK for a shared lock, or O_EXLOCK for an exclusive lock.
+ If creating a file with O_CREAT, the request for the lock will never fail
+ (provided that the underlying filesystem supports locking).
+
+so maybe that's something to work with? (SMB as a protocol supports All Kinds Of Locking (tm), and hopefully the OS X SMB file system driver would also translate O_EXLOCK, etc, through to those...)
+
+Hope that's of some help.
+
+Ewen
+
+PS: Yes, I do plan to try to install the stand alone x86-64 git-annex on my Synology when I get a spare few hours to sort out all the details. It seems like it would be the most robust solution for my specific problem. But generalised SMB support could also be useful, even if it was \"user needs to be careful about running commands in parallel as there are races\".
+"""]]
diff --git a/doc/bugs/add_fails_with_v6_repo_when_four_levels_deep/comment_9_9b91f93a66d3e38edc4490be20445a6d._comment b/doc/bugs/add_fails_with_v6_repo_when_four_levels_deep/comment_9_9b91f93a66d3e38edc4490be20445a6d._comment
new file mode 100644
index 000000000..586dd6b3a
--- /dev/null
+++ b/doc/bugs/add_fails_with_v6_repo_when_four_levels_deep/comment_9_9b91f93a66d3e38edc4490be20445a6d._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="t.z.mates"
+ avatar="http://cdn.libravatar.org/avatar/90f15fad216078fd08d62cc676487925"
+ subject="comment 9"
+ date="2017-05-13T20:59:34Z"
+ content="""
+Thanks for the response! I've [linked](https://github.com/tzmates/GitAnnexStrace) to a repo where I posted the strace results (only for the offending line, otherwise there were a lot of files) as well as the code that generated it. I'm not very familiar with strace results, so let me know if I should supply anything else.
+
+It certainly could be a BTRFS bug, though it doesn't seem to be tied to a specific kernel version; I've been continually updating kernels for the last 2 years now.
+
+If it's any help, I've never had this sort of problem using `cp --reflink` day-to-day. I have no experience with `mmap` though, so that's a distinct possibility.
+
+Thanks for all your input on this so far!
+"""]]
diff --git a/doc/bugs/git-annex_in_nixpkgs_fails_with_git-2.13.0.mdwn b/doc/bugs/git-annex_in_nixpkgs_fails_with_git-2.13.0.mdwn
new file mode 100644
index 000000000..2d3eebe51
--- /dev/null
+++ b/doc/bugs/git-annex_in_nixpkgs_fails_with_git-2.13.0.mdwn
@@ -0,0 +1,357 @@
+### Please describe the problem.
+
+Tests fail on Nix when git is upgraded to 2.13.
+
+
+### What steps will reproduce the problem?
+
+On NixOS or a system with Nix installed, check out nixpkgs ce8662e693b5756e8457d94bb1765d853310afdb, try to build git-annex (`nix-build -I . -A pkgs.gitAndTools.gitAnnex`).
+
+
+### What version of git-annex are you using? On what operating system?
+
+git-annex 6.20170321 on Nix ce8662e6.
+
+
+### Please provide any additional information below.
+
+I ran a git bisect that concluded:
+
+[[!format sh """
+8 out of 285 tests failed (281.73s)
+ (This could be due to a bug in git-annex, or an incompatibility
+ with utilities, such as git, installed on this system.)
+builder for ‘/nix/store/908y9923fnjmi87apji6q14smgc2rf3d-git-annex-6.20170321.drv’ failed with exit code 1
+error: build of ‘/nix/store/908y9923fnjmi87apji6q14smgc2rf3d-git-annex-6.20170321.drv’ failed
+ce8662e693b5756e8457d94bb1765d853310afdb is the first bad commit
+commit ce8662e693b5756e8457d94bb1765d853310afdb
+Author: Tim Steinbach <tim@nequissimus.com>
+Date: Tue May 9 21:57:24 2017 -0400
+
+ git: 2.12.2 -> 2.13.0
+
+:040000 040000 4155c091e7156a4e15cf073640e0be3c76b1b7f3 48ca917e5578b405cf8517e1f113433b2d076e15 M pkgs
+bisect run success
+"""]]
+
+
+[[!format sh """
+ adjusted branch merge regression: Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) ca9719e] git-annex in .t/tmprepo39
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+From ../../.t/tmprepo40
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+To ../../.t/tmprepo40
+ * [new branch] git-annex -> synced/git-annex
+ * [new branch] master -> synced/master
+Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) b29e8de] git-annex in .t/tmprepo40
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo39
+ * [new branch] adjusted/master(unlocked) -> r1/adjusted/master(unlocked)
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+To ../../.t/tmprepo39
+ * [new branch] git-annex -> synced/git-annex
+ ! [rejected] master -> synced/master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+To ../../.t/tmprepo39
+ ! [rejected] master -> master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+ Pushing to r1 failed.
+FAIL (2.32s)
+"""]]
+
+
+[[!format sh """
+ conflict resolution (adjusted branch): [master b0dd758] git-annex in .t/tmprepo44
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+[master 8295bae] git-annex in .t/tmprepo45
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+Switched to branch 'adjusted/master(unlocked)'
+On branch master
+nothing to commit, working tree clean
+From ../../.t/tmprepo45
+ * [new branch] adjusted/master(unlocked) -> r2/adjusted/master(unlocked)
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+ * [new branch] synced/master -> r2/synced/master
+Auto-merging conflictor
+CONFLICT (add/add): Merge conflict in conflictor
+Automatic merge failed; fix conflicts and then commit the result.
+conflictor: needs merge
+[master 14ffa24] git-annex automatic merge conflict fix
+Already up-to-date.
+To ../../.t/tmprepo45
+ 8295bae..14ffa24 master -> synced/master
+ * [new branch] git-annex -> synced/git-annex
+On branch adjusted/master(unlocked)
+nothing to commit, working tree clean
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo44
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+FAIL (2.34s)
+"""]]
+
+[[!format sh """
+ adjusted branch merge regression: Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) 7ccad36] git-annex in .t/tmprepo39
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+From ../../.t/tmprepo40
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+To ../../.t/tmprepo40
+ * [new branch] git-annex -> synced/git-annex
+ * [new branch] master -> synced/master
+Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) cfb04fd] git-annex in .t/tmprepo40
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo39
+ * [new branch] adjusted/master(unlocked) -> r1/adjusted/master(unlocked)
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+To ../../.t/tmprepo39
+ * [new branch] git-annex -> synced/git-annex
+ ! [rejected] master -> synced/master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+To ../../.t/tmprepo39
+ ! [rejected] master -> master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+ Pushing to r1 failed.
+FAIL (1.79s)
+"""]]
+
+[[!format sh """
+ conflict resolution (adjusted branch): [master ea63ee5] git-annex in .t/tmprepo44
+ 1 file changed, 1 insertion(+)
+ create mode 120000 conflictor
+[master 07d129c] git-annex in .t/tmprepo45
+ 1 file changed, 1 insertion(+)
+ create mode 120000 conflictor
+Switched to branch 'adjusted/master(unlocked)'
+On branch master
+nothing to commit, working tree clean
+From ../../.t/tmprepo45
+ * [new branch] adjusted/master(unlocked) -> r2/adjusted/master(unlocked)
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+ * [new branch] synced/master -> r2/synced/master
+Auto-merging conflictor
+CONFLICT (add/add): Merge conflict in conflictor
+Automatic merge failed; fix conflicts and then commit the result.
+conflictor: needs merge
+[master 5d5a674] git-annex automatic merge conflict fix
+Already up-to-date.
+To ../../.t/tmprepo45
+ 07d129c..5d5a674 master -> synced/master
+ * [new branch] git-annex -> synced/git-annex
+On branch adjusted/master(unlocked)
+nothing to commit, working tree clean
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo44
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+FAIL (1.35s)
+"""]]
+
+[[!format sh """
+ adjusted branch merge regression: Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) 6601699] git-annex in .t/tmprepo39
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+From ../../.t/tmprepo40
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+To ../../.t/tmprepo40
+ * [new branch] git-annex -> synced/git-annex
+ * [new branch] master -> synced/master
+Switched to branch 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) b37ecc1] git-annex in .t/tmprepo40
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo39
+ * [new branch] adjusted/master(unlocked) -> r1/adjusted/master(unlocked)
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+To ../../.t/tmprepo39
+ * [new branch] git-annex -> synced/git-annex
+ ! [rejected] master -> synced/master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+To ../../.t/tmprepo39
+ ! [rejected] master -> master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+ Pushing to r1 failed.
+FAIL (1.54s)
+"""]]
+
+[[!format sh """
+ conflict resolution (adjusted branch): [master dcd2368] git-annex in .t/tmprepo44
+ 1 file changed, 1 insertion(+)
+ create mode 120000 conflictor
+[master c933362] git-annex in .t/tmprepo45
+ 1 file changed, 1 insertion(+)
+ create mode 120000 conflictor
+Switched to branch 'adjusted/master(unlocked)'
+On branch master
+nothing to commit, working tree clean
+From ../../.t/tmprepo45
+ * [new branch] adjusted/master(unlocked) -> r2/adjusted/master(unlocked)
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+ * [new branch] synced/master -> r2/synced/master
+Auto-merging conflictor
+CONFLICT (add/add): Merge conflict in conflictor
+Automatic merge failed; fix conflicts and then commit the result.
+conflictor: needs merge
+[master 9f19aa7] git-annex automatic merge conflict fix
+Already up-to-date.
+To ../../.t/tmprepo45
+ c933362..9f19aa7 master -> synced/master
+ * [new branch] git-annex -> synced/git-annex
+On branch adjusted/master(unlocked)
+nothing to commit, working tree clean
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo44
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+FAIL (1.44s)
+"""]]
+
+[[!format sh """
+ adjusted branch merge regression: On branch master
+nothing to commit, working tree clean
+On branch master
+nothing to commit, working tree clean
+Already on 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) 70b8469] git-annex in .t/tmprepo39
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+From ../../.t/tmprepo40
+ * [new branch] annex/direct/master -> r2/annex/direct/master
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+To ../../.t/tmprepo40
+ * [new branch] git-annex -> synced/git-annex
+ * [new branch] master -> synced/master
+Already on 'adjusted/master(unlocked)'
+[adjusted/master(unlocked) 353957d] git-annex in .t/tmprepo40
+ 1 file changed, 1 insertion(+)
+ create mode 100644 conflictor
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo39
+ * [new branch] adjusted/master(unlocked) -> r1/adjusted/master(unlocked)
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+To ../../.t/tmprepo39
+ * [new branch] git-annex -> synced/git-annex
+ ! [rejected] master -> synced/master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+To ../../.t/tmprepo39
+ ! [rejected] master -> master (non-fast-forward)
+error: failed to push some refs to '../../.t/tmprepo39'
+hint: Updates were rejected because a pushed branch tip is behind its remote
+hint: counterpart. Check out this branch and integrate the remote changes
+hint: (e.g. 'git pull ...') before pushing again.
+hint: See the 'Note about fast-forwards' in 'git push --help' for details.
+ Pushing to r1 failed.
+FAIL (1.87s)
+"""]]
+
+[[!format sh """
+ conflict resolution (adjusted branch): On branch master
+nothing to commit, working tree clean
+On branch master
+nothing to commit, working tree clean
+Already on 'adjusted/master(unlocked)'
+From ../../.t/tmprepo45
+ * [new branch] adjusted/master(unlocked) -> r2/adjusted/master(unlocked)
+ * [new branch] git-annex -> r2/git-annex
+ * [new branch] master -> r2/master
+ * [new branch] synced/master -> r2/synced/master
+Auto-merging conflictor
+CONFLICT (add/add): Merge conflict in conflictor
+Automatic merge failed; fix conflicts and then commit the result.
+conflictor: needs merge
+To ../../.t/tmprepo45
+ 372f97c..cebbf06 annex/direct/master -> synced/master
+ * [new branch] git-annex -> synced/git-annex
+On branch adjusted/master(unlocked)
+nothing to commit, working tree clean
+merge: refs/heads/synced/master - not something we can merge
+From ../../.t/tmprepo44
+ * [new branch] annex/direct/master -> r1/annex/direct/master
+ * [new branch] git-annex -> r1/git-annex
+ * [new branch] master -> r1/master
+ * [new branch] synced/master -> r1/synced/master
+merge: refs/remotes/r1/master - not something we can merge
+merge: refs/remotes/r1/synced/master - not something we can merge
+FAIL (1.50s)
+"""]]
+
+[[!format sh """
+
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+git-annex is an essential building block in my digital life style! It keeps backups of all my precious family photos. I'm a big git-annex shill when I get the chance, especially to nix, guix and decentralized hacker types.
diff --git a/doc/bugs/glacier.mdwn b/doc/bugs/glacier.mdwn
new file mode 100644
index 000000000..b6887a85a
--- /dev/null
+++ b/doc/bugs/glacier.mdwn
@@ -0,0 +1,99 @@
+### Please describe the problem.
+
+Amazon Glacier remote doesn't work as expected. It seems like glacier-cli no longer works with git-annex.
+
+### What steps will reproduce the problem?
+
+1. use git-annex from archlinux repo
+2. download and install this with pip: https://github.com/basak/glacier-cli
+3. follow these instructions https://git-annex.branchable.com/tips/using_Amazon_Glacier/
+4. the problems occurs when trying to move or copy content to glacier
+
+### What version of git-annex are you using? On what operating system?
+
+version: 6.20160418-geff8673
+on: Linux 4.10.13-1-ARCH #1 SMP PREEMPT Thu Apr 27 12:15:09 CEST 2017 x86_64 GNU/Linux
+
+
+### Please provide any additional information below.
+
+[[!format sh """
+# If you can, paste a complete transcript of the problem occurring here.
+# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
+
+# with python 3.6
+% git annex copy file.mp3 --to glacier
+copy file.mp3 (checking glacier...) (to glacier...)
+98% 0.0 B/s 0sTraceback (most recent call last):
+ File "/home/me/.local/bin/glacier", line 736, in <module>
+ main()
+ File "/home/me/.local/bin/glacier", line 732, in main
+ App().main()
+ File "/home/me/.local/bin/glacier", line 718, in main
+ self.args.func()
+ File "/home/me/.local/bin/glacier", line 500, in archive_upload
+ file_obj=self.args.file, description=name)
+ File "/usr/lib/python3.6/site-packages/boto/glacier/vault.py", line 178, in create_archive_from_file
+ writer.close()
+ File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 231, in close
+ self.partitioner.flush()
+ File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 79, in flush
+ self._send_part()
+ File "/usr/lib/python3.6/site-packages/boto/glacier/writer.py", line 64, in _send_part
+ data = b''.join(self._buffer)
+TypeError: sequence item 0: expected a bytes-like object, str found
+failed
+git-annex: copy: 1 failed
+
+# --------------------------
+# with python2.7
+% git annex copy file.m3 --to glacier
+copy file.mp3 (checking glacier...) (to glacier...)
+98% 0.0 B/s 0sTraceback (most recent call last):
+ File "/home/me/.local/bin/glacier", line 736, in <module>
+ main()
+ File "/home/me/.local/bin/glacier", line 732, in main
+ App().main()
+ File "/home/me/.local/bin/glacier", line 718, in main
+ self.args.func()
+ File "/home/me/.local/bin/glacier", line 500, in archive_upload
+ file_obj=self.args.file, description=name)
+ File "/usr/lib/python2.7/site-packages/boto/glacier/vault.py", line 178, in create_archive_from_file
+ writer.close()
+ File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 228, in close
+ self.partitioner.flush()
+ File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 79, in flush
+ self._send_part()
+ File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 75, in _send_part
+ self.send_fn(part)
+ File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 222, in _upload_part
+ self.uploader.upload_part(self.next_part_index, part_data)
+ File "/usr/lib/python2.7/site-packages/boto/glacier/writer.py", line 129, in upload_part
+ content_range, part_data)
+ File "/usr/lib/python2.7/site-packages/boto/glacier/layer1.py", line 1279, in upload_part
+ response_headers=response_headers)
+ File "/usr/lib/python2.7/site-packages/boto/glacier/layer1.py", line 114, in make_request
+ data=data)
+ File "/usr/lib/python2.7/site-packages/boto/connection.py", line 1071, in make_request
+ retry_handler=retry_handler)
+ File "/usr/lib/python2.7/site-packages/boto/connection.py", line 943, in _mexe
+ request.body, request.headers)
+ File "/usr/lib/python2.7/httplib.py", line 1042, in request
+ self._send_request(method, url, body, headers)
+ File "/usr/lib/python2.7/httplib.py", line 1082, in _send_request
+ self.endheaders(body)
+ File "/usr/lib/python2.7/httplib.py", line 1038, in endheaders
+ self._send_output(message_body)
+ File "/usr/lib/python2.7/httplib.py", line 880, in _send_output
+ msg += message_body
+UnicodeDecodeError: 'ascii' codec can't decode byte 0x8c in position 0: ordinal not in range(128)
+failed
+git-annex: copy: 1 failed
+
+# End of transcript or log.
+"""]]
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+Yes it's a great tool :). Thanks!
+AWS Glacier integration would be a perfect addition and I could employ git-annex at my company.
+
diff --git a/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking.mdwn b/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking.mdwn
new file mode 100644
index 000000000..3223c61c0
--- /dev/null
+++ b/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking.mdwn
@@ -0,0 +1,215 @@
+### Please describe the problem.
+Sync / Assistant between a `source` and `transfer` repo results in zero copies for whereis, but data is available.
+
+
+### What steps will reproduce the problem?
+See a script below...
+
+``` sh
+#!/bin/sh
+
+TMP=$(mktemp -d)
+
+
+##########################################
+# Set up the repos
+##########################################
+
+
+###
+# Create working directories
+cd ${TMP}
+mkdir source transfer
+
+
+###
+# Set up the source repo
+cd ${TMP}/source
+git init
+git annex init source
+git-annex group here source
+git annex wanted here standard
+
+
+###
+# Set up the transfer repo
+# N.B. It can see the source repo
+cd ${TMP}/transfer
+git init
+git remote add source ${TMP}/source
+git annex init transfer
+git-annex group here transfer
+git annex wanted here \
+ 'not (inallgroup=client and copies=client:1) and ((include=* and ((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1)))) or approxlackingcopies=1)'
+
+
+##########################################
+# Add some files and run the assistant
+##########################################
+
+###
+# Make sure it works by adding some files to the source...
+cd ${TMP}/source
+date > file.1
+date > file.2
+date > file.3
+
+# Run the assistant in the source...
+(cd ${TMP}/source && \
+ git annex assistant && \
+ sleep 30 && \
+ git annex assistant --stop && \
+ git annex whereis file.*)
+# PASS: All files are in source.
+
+# Now run it in the transfer group
+(cd ${TMP}/transfer && \
+ git annex assistant && \
+ sleep 30 && \
+ git annex assistant --stop && \
+ git annex whereis file.*)
+# PASS: All files are in transfer
+
+# Check the source
+(cd ${TMP}/source && \
+ git annex whereis file.*)
+# FAIL: Only file.1 was updated to be in source.
+
+# whereis file.1 (1 copy)
+# 64b193e0-86f0-4349-b073-70af919ce628 -- transfer
+# ok
+# whereis file.2 (0 copies) failed
+# whereis file.3 (0 copies) failed
+# git-annex: whereis: 2 failed
+
+
+##########################################
+# Start to scratch head and ask 'Why?'
+##########################################
+
+##########
+# What's happening???
+
+cd ${TMP}/source && git annex sync
+# Source thinks it is updated - working tree clean
+
+cd ${TMP}/transfer && git annex sync
+# Transfer pulls from source, so run again
+git annex sync
+# OK... working tree clean
+
+
+# Check again
+cd ${TMP}/source && git annex whereis file.*
+# whereis file.1 (1 copy)
+# 64b193e0-86f0-4349-b073-70af919ce628 -- transfer
+# ok
+# whereis file.2 (0 copies) failed
+# whereis file.3 (0 copies) failed
+# git-annex: whereis: 2 failed
+
+cd ${TMP}/transfer && git annex whereis file.*
+# whereis file.1 (1 copy)
+# 64b193e0-86f0-4349-b073-70af919ce628 -- transfer [here]
+# ok
+# whereis file.2 (0 copies) failed
+# whereis file.3 (0 copies) failed
+# git-annex: whereis: 2 failed
+
+
+# HOWEVER... Files are definitely in the transfer repo
+
+cd ${TMP}/source && cat file.*
+# cat: file.1: No such file or directory
+# cat: file.2: No such file or directory
+# cat: file.3: No such file or directory
+
+
+cd ${TMP}/transfer && cat file.*
+# Sun May 14 21:22:02 PDT 2017
+# Sun May 14 21:22:03 PDT 2017
+# Sun May 14 21:22:06 PDT 2017
+```
+
+
+
+### What version of git-annex are you using? On what operating system?
+
+#### Version:
+```
+git-annex version: 6.20170510
+build flags: Assistant Webapp Pairing Testsuite S3(multipartupload)(storageclasses) WebDAV FsEvents ConcurrentOutput TorrentParser MagicMime Feeds Quvi
+dependency versions: aws-0.16 bloomfilter-2.0.1.0 cryptonite-0.23 DAV-1.3.1 feed-0.3.12.0 ghc-8.0.2 http-client-0.5.6.1 persistent-sqlite-2.6.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.4.5
+key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL
+remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
+local repository version: 5
+supported repository versions: 3 5 6
+upgrade supported from repository versions: 0 1 2 3 4 5
+operating system: darwin x86_64
+```
+
+#### OS:
+MacOS 10.12.4, but seems to apply to Debian Jessie too.
+
+
+### Please provide any additional information below.
+
+Annex assistant daemon.log for `source` repo:
+
+``` sh
+[2017-05-15 14:11:24.150202] main: starting assistant version 6.20170510
+[2017-05-15 14:11:24.196597] Cronner: You should enable consistency checking to protect your data.
+(scanning...) [2017-05-15 14:11:24.257123] Watcher: Performing startup scan
+(started...)
+[2017-05-15 14:11:45.505855] Committer: Adding file.1 file.2 file.3
+add file.1 ok
+add file.2 ok
+add file.3 ok
+[2017-05-15 14:11:45.544277] Committer: Committing changes to git
+(recording state in git...)
+(recording state in git...)
+```
+
+Annex assistant daemon.log for `transfer` repo:
+
+``` sh
+[2017-05-15 14:12:09.127406] main: starting assistant version 6.20170510
+[2017-05-15 14:12:09.157611] Cronner: You should enable consistency checking to protect your data.
+[2017-05-15 14:12:09.177452] TransferScanner: Syncing with source
+(scanning...) [2017-05-15 14:12:09.210605] Watcher: Performing startup scan
+(started...)
+warning: no common commits
+From /Users/olaf/tmp/git-annex/play/bug-play/source
+ * [new branch] git-annex -> source/git-annex
+ * [new branch] master -> source/master
+ * [new branch] synced/master -> source/synced/master
+(merging source/git-annex into git-annex...)
+(recording state in git...)
+
+
+Already up-to-date.
+[2017-05-15 14:12:10.256195] Committer: Committing changes to git
+(recording state in git...)
+(checksum...) [2017-05-15 14:12:10.425494] Transferrer: Downloaded file.1
+[2017-05-15 14:12:11.17664] Pusher: Syncing with source
+(recording state in git...)
+[2017-05-15 14:12:11.356447] Committer: Committing changes to git
+(recording state in git...)
+To /Users/olaf/tmp/git-annex/play/bug-play/source
+ * [new branch] git-annex -> synced/git-annex
+(checksum...) [2017-05-15 14:12:11.428676] Transferrer: Downloaded file.2
+(checksum...) [2017-05-15 14:12:11.451457] Transferrer: Downloaded file.3
+drop source file.1 ok
+drop source file.2 ok
+drop source file.3 ok
+[2017-05-15 14:12:13.477636] Pusher: Syncing with source
+(recording state in git...)
+To /Users/olaf/tmp/git-annex/play/bug-play/source
+ 825d3dd..60c96cb git-annex -> synced/git-annex
+```
+
+
+### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
+
+Yes. Love it. Donated. Have been using it for years. Recommend it and get(/force) my collaborators to use it. ;-)
+
diff --git a/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking/comment_1_562cf3ab3398c1ef874c0bfe5d89e47b._comment b/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking/comment_1_562cf3ab3398c1ef874c0bfe5d89e47b._comment
new file mode 100644
index 000000000..7511c3689
--- /dev/null
+++ b/doc/bugs/sync_claims_data_loss_but_seems_to_just_lose_tracking/comment_1_562cf3ab3398c1ef874c0bfe5d89e47b._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="leavingchicago@c04c893e78d1c4c76cb3e32b5c227cf42bbf7682"
+ nickname="leavingchicago"
+ avatar="http://cdn.libravatar.org/avatar/4ae498d3d6ee558d6b65caa658f72572"
+ subject="Related..."
+ date="2017-05-15T04:43:44Z"
+ content="""
+I think this bug is related to the problems that I'm having with [/forum/Get source group to automatically drop with assistant](https://git-annex.branchable.com/forum/Get___39__source__39___group_to_automatically_drop_with_assistant/)
+
+"""]]
diff --git a/doc/forum/Fix_wrong_rsync_with_git_annex_reinit__63__.mdwn b/doc/forum/Fix_wrong_rsync_with_git_annex_reinit__63__.mdwn
new file mode 100644
index 000000000..ea4e30c9f
--- /dev/null
+++ b/doc/forum/Fix_wrong_rsync_with_git_annex_reinit__63__.mdwn
@@ -0,0 +1,38 @@
+# Context
+
+* Had two repo A and B.
+* A had a lot of content not yet tracked and thus not available on B.
+* Filesystem problem on A: (relatively small) part of big repo content is lost.
+* In emergency, used rsync to propagate yet untracked content from failing A to sane B.
+* But forgot `ignore .git`, so rsync also partly rsync'ed `.git/annex` .
+* Now sane repo B believes it is the source one (same UUID A) as shown by `git annex info --fast`.
+
+Both A and B show:
+
+ UUID-of-A -- A [here]
+ UUID-of-B -- B
+
+# Actions done
+
+Search on Google, see [[https://git-annex.branchable.com/git-annex-reinit/]] .
+
+On B:
+
+ git annex reinit UUID-of-B
+ git annex fsck
+
+Now `git annex info -fast` on B shows as expected:
+
+ UUID-of-A -- A
+ UUID-of-B -- B [here]
+
+
+I'm currently doing `git annex copy --from B` to repropagate lost parts of A.
+
+# Question
+
+* Were actions done best thing to do?
+* Is there something more to do?
+* Something to check?
+
+Thanks.
diff --git a/doc/git-annex-adjust.mdwn b/doc/git-annex-adjust.mdwn
index 140de6326..772d27be8 100644
--- a/doc/git-annex-adjust.mdwn
+++ b/doc/git-annex-adjust.mdwn
@@ -4,7 +4,7 @@ git-annex adjust - enter an adjusted branch
# SYNOPSIS
-git annex adjust --unlock|--fix`
+`git annex adjust --unlock|--fix`
# DESCRIPTION