summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-07-27 12:24:03 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-07-27 12:24:03 -0400
commit9e3753eb3a51147c65b3048e6197227093098de6 (patch)
tree7cd61027d5e69006c9e0027d4c4a4e926e295d7c
parente6c56461ff420581ad45f37ba797ad2545740404 (diff)
parentf795ef0bece363d00e50e556d14d75f4731d7fe4 (diff)
Merge branch 'master' into newchunks
Conflicts: doc/design/assistant/chunks.mdwn
-rw-r--r--doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment234
-rw-r--r--doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them.mdwn44
-rw-r--r--doc/design/assistant/chunks.mdwn33
-rw-r--r--doc/devblog/day_204__mowing.mdwn64
4 files changed, 369 insertions, 6 deletions
diff --git a/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment b/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment
new file mode 100644
index 000000000..c6cc3405c
--- /dev/null
+++ b/doc/bugs/Assistant_merge_loop/comment_13_c88d26bc73eefa628037f88efb108368._comment
@@ -0,0 +1,234 @@
+[[!comment format=mdwn
+ username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
+ nickname="Jon Ander"
+ subject="comment 13"
+ date="2014-07-26T14:57:53Z"
+ content="""
+The empty merge commits are a lot less common lately, but still happen.
+
+I post a log of today's merges. I have empty merge commit at 11:44:02, 11:44:03 and 11:54:34.
+
+
+[2014-07-26 11:41:35 CEST] main: starting assistant version 5.20140717
+[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:41:36 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:41:36 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
+[2014-07-26 11:41:36 CEST] Cronner: You should enable consistency checking to protect your data.
+[2014-07-26 11:43:46 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-files\",\"--stage\",\"-z\",\"--\",\"/home/jonan/Sync\"]
+[2014-07-26 11:43:49 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-files\",\"--stage\",\"-z\",\"--\",\"/home/jonan/Sync\"]
+[2014-07-26 11:43:56 CEST] chat: nice [\"ionice\",\"-c3\",\"git-annex\",\"remotedaemon\"]
+[2014-07-26 11:43:56 CEST] read: git [\"config\",\"--null\",\"--list\"]
+[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+[2014-07-26 11:43:56 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@gitlab.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@gitlab.com\",\"git-annex-shell 'notifychanges' '/~/jonan/annex-sync.git'\"]
+[2014-07-26 11:43:56 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
+[2014-07-26 11:43:56 CEST] TransferScanner: Syncing with gitlab, github
+[2014-07-26 11:43:57 CEST] MountWatcher: Using running DBUS service org.kde.DeviceNotifications to monitor mount events.
+[2014-07-26 11:43:57 CEST] NetWatcher: Using running DBUS service org.freedesktop.NetworkManager to monitor network connection events.
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:57 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"gitlab\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec25486238253.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:57 CEST] RemoteControl: DISCONNECTED ssh://git@gitlab.com/~/jonan/annex-sync.git
+[2014-07-26 11:43:57 CEST] RemoteControl: fromList []
+(scanning...) [2014-07-26 11:43:58 CEST] Watcher: Performing startup scan
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"cat-file\",\"--batch\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git''
+ You appear to be using ssh to clone a git:// URL.
+ Make sure your core.gitProxy config option and the
+ GIT_PROXY_COMMA[2014-07-26 11:43:58 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:43:58 CEST] RemoteControl: fromList []
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec2548437158.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/ec25486248131.compute1.amazonaws.com_annexsync/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] TransferWatcher: watching for transfers
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/heads/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:43:58 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:43:58 CEST] Merger: watching /home/jonan/Sync/.git/refs
+[2014-07-26 11:43:59 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shel[2014-07-26 11:43:59 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:43:59 CEST] RemoteControl: fromList []
+[2014-07-26 11:44:00 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"github\"]
+[2014-07-26 11:44:01 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~[2014-07-26 11:44:01 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:44:01 CEST] RemoteControl: fromList []
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/gitlab/annex/direct/master\"]
+[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/gitlab/synced/master\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/gitlab/synced/master\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"72953c0d32d121b75dde10570aa25632641f2a54\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
+[2014-07-26 11:44:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
+[2014-07-26 11:44:02 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/gitlab/synced/master\"]
+[2014-07-26 11:44:02 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"073a007b04d28be9439ba847429c53681152af53\"]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/annex/direct/master\"]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"073a007b04d28be9439ba847429c53681152af53\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
+[2014-07-26 11:44:03 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"aa25ea14ffcb0837e5eaa3d725228c300655f7c1\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:44:03 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:44:03 CEST] TransferScanner: pushing to [Remote { name =\"gitlab\" },Remote { name =\"github\" }]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"gitlab\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
+[2014-07-26 11:44:03 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
+[2014-07-26 11:44:05 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~/[2014-07-26 11:44:05 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:44:05 CEST] RemoteControl: fromList []
+[2014-07-26 11:44:14 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~[2014-07-26 11:44:14 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:44:14 CEST] RemoteControl: fromList []
+[2014-07-26 11:44:30 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges'[2014-07-26 11:44:30 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:44:30 CEST] RemoteControl: fromList []
+[2014-07-26 11:45:02 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-tree\",\"--full-tree\",\"-z\",\"--\",\"refs/heads/git-annex\",\"uuid.log\",\"remote.log\",\"trust.log\",\"group.log\",\"numcopies.log\",\"schedule.log\",\"preferred-content.log\",\"required-content.log\",\"group-preferred-content.log\"]
+[2014-07-26 11:45:02 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges'[2014-07-26 11:45:02 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:45:02 CEST] RemoteControl: fromList []
+ssh: connect to host ec2-54-86-238-253.comput[2014-07-26 11:46:04 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:46:04 CEST] RemoteControl: fromList []
+[2014-07-26 11:46:05 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+[2014-07-26 11:46:06 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychange[2014-07-26 11:46:07 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:46:07 CEST] RemoteControl: fromList []
+ssh: connect to host ec2-54-86-238-253.com[2014-07-26 11:48:12 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:48:12 CEST] RemoteControl: fromList []
+[2014-07-26 11:48:14 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+[2014-07-26 11:48:15 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' [2014-07-26 11:48:15 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:48:15 CEST] RemoteControl: fromList []
+ssh: connect to host ec2-54-86-238-253.compute[2014-07-26 11:50:21 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:50:21 CEST] RemoteControl: fromList []
+[2014-07-26 11:50:25 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+[2014-07-26 11:52:31 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~/[2014-07-26 11:52:31 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 11:52:31 CEST] RemoteControl: fromList []
+ssh: connect to host ec2-54-86-238-253.compute-1.a[2014-07-26 11:52:33 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:52:34 CEST] RemoteControl: fromList []
+[2014-07-26 11:52:41 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+To git@gitlab.com:jonan/annex-sync.git
+ 01dd6e8..aa25ea1 annex/direct/master -> synced/master
+[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"gitlab\",\"master\"]
+[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:53:57 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/gitlab/synced/master\",\"-n1\",\"--pretty=%H\"]
+Connection to github.com closed by remote host.
+fatal: The remote end hung up unexpectedly
+fatal: The remote end hung up unexpectedly
+[2014-07-26 11:54:07 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"master\"]
+[2014-07-26 11:54:32 CEST] TransferScanner: trying manual pull to resolve failed pushes
+[2014-07-26 11:54:32 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"fetch\",\"github\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"git-annex\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/git-annex..c0620bd57bd1230fe9282b582bf65cd8ef39f59b\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/annex/direct/master\"]
+[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--verify\",\"-q\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/synced/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--hash\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync/.git/annex/merge/\",\"-c\",\"core.bare=false\",\"merge\",\"--quiet\",\"--no-commit\",\"--no-ff\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"aa25ea14ffcb0837e5eaa3d725228c300655f7c1\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"--head\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"diff-index\",\"-z\",\"--raw\",\"--no-renames\",\"-l0\",\"--cached\",\"HEAD\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\",\"--ancestry-path\"]
+[2014-07-26 11:54:34 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"write-tree\"]
+[2014-07-26 11:54:34 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"commit-tree\",\"53de8f3b86ec1b57ab58e7e849d7b38004616dd6\",\"-p\",\"HEAD\",\"-p\",\"refs/remotes/github/synced/master\"]
+[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"update-ref\",\"HEAD\",\"28cad03424f199957d616ecd78f208a24eedf955\"]
+[2014-07-26 11:54:34 CEST] TransferScanner: pushing to [Remote { name =\"github\" }]
+[2014-07-26 11:54:34 CEST] call: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"+git-annex:synced/git-annex\",\"annex/direct/master:synced/master\"]
+To git@github.com:Jonan88/annex-sync.git
+ 01dd6e8..28cad03 annex/direct/master -> synced/master
+[2014-07-26 11:54:38 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"push\",\"github\",\"master\"]
+[2014-07-26 11:54:38 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"symbolic-ref\",\"HEAD\"]
+[2014-07-26 11:54:38 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"show-ref\",\"refs/heads/annex/direct/master\"]
+[2014-07-26 11:54:38 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"log\",\"refs/heads/annex/direct/master..refs/remotes/github/synced/master\",\"-n1\",\"--pretty=%H\"]
+[2014-07-26 11:54:42 CEST] TransferScanner: starting scan of [Remote { name =\"box.com\" }]
+[2014-07-26 11:54:42 CEST] read: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"ls-files\",\"--cached\",\"-z\",\"--\"]
+[2014-07-26 11:54:42 CEST] chat: git [\"--git-dir=/home/jonan/Sync/.git\",\"--work-tree=/home/jonan/Sync\",\"-c\",\"core.bare=false\",\"check-attr\",\"-z\",\"--stdin\",\"annex.backend\",\"annex.numcopies\",\"--\"]
+ssh: connect to host ec2-54-86-238-253.compute-1.amazonaws.com port 22: Connection timed out
+[2014-07-26 11:54:48 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:54:48 CEST] RemoteControl: fromList []
+[2014-07-26 11:55:04 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host[2014-07-26 11:57:11 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:57:11 CEST] RemoteControl: fromList []
+[2014-07-26 11:57:43 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host e[2014-07-26 11:59:51 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 11:59:51 CEST] RemoteControl: fromList []
+[2014-07-26 12:00:55 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+[2014-07-26 12:01:03 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+Invalid command: 'git-annex-shell 'notifychanges' '/~/Jonan88/[2014-07-26 12:01:04 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 12:01:04 CEST] RemoteControl: fromList []
+ssh: connec[2014-07-26 12:03:03 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 12:03:03 CEST] RemoteControl: fromList []
+[2014-07-26 12:05:11 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host ec2-54-86-238-253.compute-1.amazonaws.com port 22: Connection timed [2014-07-26 12:07:19 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 12:07:19 CEST] RemoteControl: fromList []
+[2014-07-26 12:11:35 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host ec2-54-86-238-253.compute-1.amazonaws.com port 22: Connection timed[2014-07-26 12:13:45 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 12:13:45 CEST] RemoteControl: fromList []
+[2014-07-26 12:18:08 CEST] chat: ssh [\"-S\",\".git/annex/ssh/git@github.com\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"git@github.com\",\"git-annex-shell 'notifychanges' '/~/Jonan88/annex-sync.git'\"]
+mux_client_request_session: read from master failed: Broken pipe
+Invalid command: 'git-annex-shell 'no[2014-07-26 12:18:11 CEST] RemoteControl: DISCONNECTED ssh://git@github.com/~/Jonan88/annex-sync.git
+[2014-07-26 12:18:11 CEST] RemoteControl: fromList []
+[2014-07-26 12:22:17 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host ec2-54-86-238-253.compute-1.amaz[2014-07-26 12:24:24 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+[2014-07-26 12:24:24 CEST] RemoteControl: fromList []
+[2014-07-26 12:41:28 CEST] chat: ssh [\"-S\",\".git/annex/ssh/cdb5368d318ce8939cedf7b343eb95a9\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"-T\",\"admin@ec2-54-86-238-253.compute-1.amazonaws.com\",\"git-annex-shell 'notifychanges' '/~/annex-sync/' --uuid 3ff8a15c-33d8-49e4-ae8f-a9b830a7dc5f\"]
+ssh: connect to host ec2-54-86-238-253.compute-1.[2014-07-26 12:43:35 CEST] RemoteControl: DISCONNECTED ssh://admin@ec2-54-86-238-253.compute-1.amazonaws.com/~/annex-sync/
+
+"""]]
diff --git a/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them.mdwn b/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them.mdwn
new file mode 100644
index 000000000..8727d3d93
--- /dev/null
+++ b/doc/bugs/git_annex_import_fails_on_filenames_with_newlines_in_them.mdwn
@@ -0,0 +1,44 @@
+### Please describe the problem.
+I am importing a lot of old documents into my annex. Some of these old files apparently have newlines in their filename. A run of `git annex import` aborts when it encounters such a file; the file is moved to the annex, but it is left unstaged.
+
+### What steps will reproduce the problem?
+[[!format sh """
+bram@durian% mkdir annex
+bram@durian% cd annex
+bram@durian% git init
+Initialized empty Git repository in /home/bram/tmp/t/annex/.git/
+bram@durian% git annex init
+init ok
+(Recording state in git...)
+bram@durian% echo foo > ../$'foo\nbar'
+bram@durian% ls -lb ..
+total 8
+drwxr-xr-x 3 bram bram 4096 Jul 26 18:20 annex/
+-rw-r--r-- 1 bram bram 4 Jul 26 18:20 foo\nbar
+bram@durian% git annex import ../foo$'\n'bar
+import foo
+bar git-annex: unknown response from git cat-file ("HEAD:./foo missing","HEAD:./foo\nbar")
+bram@durian% ls -lb
+total 4
+-r--r--r-- 2 bram bram 4 Jul 26 18:20 foo\nbar
+bram@durian% git status
+On branch master
+
+Initial commit
+
+Untracked files:
+ (use "git add <file>..." to include in what will be committed)
+
+ "foo\nbar"
+
+nothing added to commit but untracked files present (use "git add" to track)
+bram@durian% cat $'foo\nbar'
+foo
+"""]]
+
+
+### What version of git-annex are you using? On what operating system?
+ Debian unstable
+ git-annex version: 5.20140717
+ git version 2.0.1
+ Linux durian 3.14-1-amd64 #1 SMP Debian 3.14.9-1 (2014-06-30) x86_64 GNU/Linux
diff --git a/doc/design/assistant/chunks.mdwn b/doc/design/assistant/chunks.mdwn
index b5a86ef82..454f15f9e 100644
--- a/doc/design/assistant/chunks.mdwn
+++ b/doc/design/assistant/chunks.mdwn
@@ -6,15 +6,17 @@ May be a useful starting point for [[deltas]].
May also allow for downloading different chunks of a file concurrently from
multiple remotes.
-# currently
+Also, can allow resuming of interrupted uploads and downloads.
-Currently, only the webdav and directory special remotes support chunking.
+# legacy chunking
+
+Supported by only the webdav and directory special remotes.
Filenames are used for the chunks that make it easy to see which chunks
belong together, even when encryption is used. There is also a chunkcount
file, that similarly leaks information.
-It is not currently possible to enable chunking on a non-chunked remote.
+It is not possible to enable chunking on a non-chunked remote.
Problem: Two uploads of the same key from repos with different chunk sizes
could lead to data loss. For example, suppose A is 10 mb chunksize, and B
@@ -39,9 +41,9 @@ on in the webapp when configuring an existing remote).
Two concurrent uploaders of the same object to a remote should be safe,
even if they're using different chunk sizes.
-The old chunk method needs to be supported for back-compat, so
-keep the chunksize= setting to enable that mode, and add a new setting
-for the new mode.
+The legacy chunk method needs to be supported for back-compat, so
+keep the chunksize= setting to enable that mode, and add a new chunk=
+setting for the new mode.
# obscuring file sizes
@@ -218,3 +220,22 @@ with non-encrypted keys.
Won't happen when the key is encrypted, but that is good; hashing to the
same bucket then would allow statistical correlation.
+
+## resuming interupted transfers
+
+Resuming interrupted downloads, and uploads are both possible.
+
+Downloads: If the tmp file for a key exists, round it to the chunk size,
+and skip forward to the next needed chunk. Easy.
+
+Uploads: Check if the 1st chunk is present. If so, check the second chunk,
+etc. Once the first missing chunk is found, start uploading from there.
+
+That adds one extra hasKey call per upload. Probably a win in most cases.
+Can be improved by making special remotes open a persistent
+connection that is used for transferring all chunks, as well as for
+checking hasKey.
+
+Note that this is safe to do only as long as the Key being transferred
+cannot possibly have 2 different contents in different repos. Notably not
+necessarily the case for the URL keys generated for quvi.
diff --git a/doc/devblog/day_204__mowing.mdwn b/doc/devblog/day_204__mowing.mdwn
new file mode 100644
index 000000000..b34f1ba38
--- /dev/null
+++ b/doc/devblog/day_204__mowing.mdwn
@@ -0,0 +1,64 @@
+Remained frustratingly stuck until 3 pm on the same stuff that puzzled
+me yesterday. However, 6 hours later, I have the directory
+special remote 100% working with both new chunk= and legacy chunksize=
+configuration, both with and without encryption.
+
+----
+
+So, the root of why this is was hard, since I thought about it a lot today
+in between beating my head into the wall: git-annex's internal API for remotes
+is really, really simple. It basically comes down to:
+
+[[!format haskell """
+ Remote
+ { storeKey :: Key -> AssociatedFile -> MeterUpdate -> Annex Bool
+ , retrieveKeyFile :: Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool
+ , removeKey :: Key -> Annex Bool
+ , hasKey :: Key -> Annex (Either String Bool)
+ }
+"""]]
+
+This simplicity is a Good Thing, because it maps very well to REST-type
+services. And it allows for quite a lot of variety in implementations of
+remotes. Ranging from reguar git remotes, that rsync files around without
+git-annex ever loading them itself, to remotes like webdav that load
+and store files themselves, to remotes like tahoe that intentionally do not
+support git-annex's built-in encryption methods.
+
+However, the simplicity of that API means that lots of complicated stuff,
+like handling chunking, encryption, etc, has to be handled on a per-remote
+basis. Or, more generally, by `Remote -> Remote` transformers that take
+a remote and add some useful feature to it.
+
+One problem is that the API is so simple that a remote transformer that adds
+encryption is not feasible. In fact, every encryptable remote has
+had its own code that loads a file from local disk, encrypts it, and sends
+it to the remote. Because there's no way to make a remote transformer that
+converts a `storeKey` into an encrypted `storeKey`. (Ditto for retrieving
+keys.)
+
+I almost made the API more complicated today. Twice. But both times
+I ended up not, and I think that was the right choice, even though
+it meant I had to write some quite painful code.
+
+----
+
+In the end, I instead wrote a little module that pulls together supporting
+both encryption and chunking. I'm not completely happy because those
+two things should be independent, and so separate. But, 120 lines of
+code that don't keep them separate is not the end of the world.
+
+That module also contains some more powerful, less general APIs,
+that will work well with the kinds of remotes that will use it.
+
+The really nice result, is that the implementation of the directory
+special remote melts down from 267 lines of code to just 172! (Plus some
+legacy code for the old style chunking, refactored out into a file I can
+delete one day.) It's a lot cleaner too.
+
+With all this done, I expect I can pretty easily add the new style chunking
+to most git-annex remotes, and remove code from them while doing it!
+
+----
+
+Today's work was sponsored by Mark Hepburn.