summaryrefslogtreecommitdiff
path: root/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn
diff options
context:
space:
mode:
authorGravatar http://christian.amsuess.com/chrysn <chrysn@web>2012-12-13 16:47:52 +0000
committerGravatar admin <admin@branchable.com>2012-12-13 16:47:52 +0000
commit08f3f54f5ab7ab60966e79bf1572c2fc604b4922 (patch)
tree906615954b4407975ae2636ad5a204c4a171302a /doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn
parent150408081cc24a8575bc50be8f995d690cab3ae8 (diff)
no annex-rsync-options = -e 'ssh -p 2234'
Diffstat (limited to 'doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn')
-rw-r--r--doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn16
1 files changed, 16 insertions, 0 deletions
diff --git a/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn b/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn
new file mode 100644
index 000000000..c8eeb7160
--- /dev/null
+++ b/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn
@@ -0,0 +1,16 @@
+with rsync, it is sometimes the case that one needs to specify ssh options -- typical examples from the rsync man page are `rsync -e 'ssh -p 2234'`. as git-annex does the shell splitting of the arguments in `annex-rsync-options` (see [[special remotes/rsync]]) itself by looking for whitespace, these options can't be passed directly. (`annex-rsync-options = -e 'ssh -p 2234'` gets split to `["rsync", "-e", "'ssh", "-p", "2234'"]` instead of `["rsync", "-e", "ssh -p 2234"]`).
+
+git-annex should respect shell splitting rules when looking at annex-rsync-options. (i suppose there is a haskell library or module for that; in python, we have the `shlex` module for that).
+
+## workaround
+
+put this in .git/ssh and mark it as executable:
+
+ #!/bin/sh
+ exec ssh -p 2234 $@
+
+put this in your git annex config in the particular remote's section:
+
+ annex-rsync-options = -e /local/path/to/your/repo/.git/ssh
+
+(typical bug report information: observed with git-annex 3.20121127 on debian)