aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn
blob: c8eeb7160d4409e377ca71a375b738d67b56e58d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)