Merge branch 'master' into newchunks

Conflicts:
	doc/design/assistant/chunks.mdwn
This commit is contained in:
Joey Hess 2014-07-27 12:24:03 -04:00
commit 85d17a698d
4 changed files with 369 additions and 6 deletions

View file

@ -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/
"""]]

View file

@ -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

View file

@ -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.

View file

@ -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.