66 lines
3.7 KiB
Markdown
66 lines
3.7 KiB
Markdown
TL;DNR ssh connection caching seems to cause git-annex to not work on NTFS volumes. Setting `annex.sshcaching` to `false` seems to solve the problem.
|
|
|
|
## What version of git-annex are you using? On what operating system? Please provide any additional information below.
|
|
|
|
* git-annex version: 3.20120629 on Debian Testing.
|
|
* `the-repo` is located on an NTFS volume on a USB HDD.
|
|
* `the-remote` is on the server `example.com`.
|
|
* `example.com` is running gitolite3 v3.2-19-gb9bbb78, git 1.7.2.5, and git-annex 3.20120629~bpo60+2
|
|
|
|
|
|
## What steps will reproduce the problem? What is the expected output? What do you see instead?
|
|
|
|
Create or clone a repo onto an NTFS volume.
|
|
Make sure `git annex` is initialized.
|
|
Run some regular git operations. These always seem to work.
|
|
Try git-annex operations.
|
|
|
|
Some operations work despite the error messages:
|
|
|
|
$ git annex sync
|
|
Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
|
|
Failed to connect to new control master
|
|
Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo.git'"] failed; exit code 255
|
|
Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
|
|
Failed to connect to new control master
|
|
Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo'"] failed; exit code 255
|
|
commit
|
|
# On branch master
|
|
nothing to commit (working directory clean)
|
|
ok
|
|
pull the-remote
|
|
ok
|
|
pull origin
|
|
ok
|
|
|
|
Other operations fail:
|
|
|
|
$ git annex copy -t the-remote the-file.jpg
|
|
Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
|
|
Failed to connect to new control master
|
|
Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo.git'"] failed; exit code 255
|
|
Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
|
|
Failed to connect to new control master
|
|
Command ssh ["-S","/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com","-o","ControlMaster=auto","-o","ControlPersist=yes","git@example.com","git-annex-shell 'configlist' '/~/the-repo'"] failed; exit code 255
|
|
copy the-file.jpg (checking the-remote...) Control socket connect(/media/NTFSVOL/the-repo/.git/annex/ssh/git@example.com): Connection refused
|
|
Failed to connect to new control master
|
|
(unable to check the-remote) failed
|
|
git-annex: copy: 1 failed
|
|
|
|
Some googling revealed the errors to be stale socket files.
|
|
- [Three SSH Tips](http://shallowsky.com/blog/tags/ssh/)
|
|
- [Improving SSH (OpenSSH) connection speed with shared connections](http://protempore.net/~calvins/howto/ssh-connection-sharing/#section-03)
|
|
|
|
It appears that SSH connection caching was implemented in response to this wishlist item:
|
|
[wishlist: Prevent repeated password prompts for one command](http://git-annex.branchable.com/todo/wishlist:_Prevent_repeated_password_prompts_for_one_command/)
|
|
|
|
However ssh connection caching breaks things on NTFS volumes. If I turn off connection caching, it seems to work fine
|
|
|
|
$ git config annex.sshcaching false
|
|
|
|
but it would be nifty if git-annex could detect the filesystem type and do The Right Thing.
|
|
|
|
Thanks for all the work on git-annex -- it's an awesome project!
|
|
|
|
> [[done]], `git annex init` now probes for fifo support and disables ssh
|
|
> connection caching if it cannot make one. --[[Joey]]
|