diff options
author | Michal Ostrowski <mostrows@watson.ibm.com> | 2006-01-20 21:05:24 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-01-25 10:17:26 +0300 |
commit | 2c620a1ad1dce1e249d66ce18c7b1cce22d5d64c (patch) | |
tree | c92dc1ebdc6b9f6b27c60d31de1cc8823b009a3f | |
parent | 941c9449999192e2d338ee204f4153e30ae43829 (diff) |
git-fetch: pass --upload-pack to fetch-pack
Without this, there is no way to specify a remote executable when
invoking git-pull/git-fetch as there is for git-clone.
[jc: I have a mild suspicion that this is a broken environment (aka
sysadmin disservice). It may be legal to configure your sshd to
spawn named program without involving shell at all, and if your
sysadmin does so and you have your git programs under your home
directory, you would need something like this, but then I suspect
you would need such workaround everywhere, not just git. But we
have these options we can use to work around the issue, so there
is no strong reason not to reject this patch, either. ]
Signed-off-by: Michal Ostrowski <mostrows@watson.ibm.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Documentation/fetch-options.txt | 7 | ||||
-rwxr-xr-x | git-fetch.sh | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt index e624d3d0ee..83237562d2 100644 --- a/Documentation/fetch-options.txt +++ b/Documentation/fetch-options.txt @@ -3,6 +3,13 @@ existing contents of `.git/FETCH_HEAD`. Without this option old data in `.git/FETCH_HEAD` will be overwritten. +--upload-pack <upload-pack>:: +-u <upload-pack>:: + When given, and the repository to fetch from is handled + by 'git-fetch-pack', '--exec=<upload-pack>' is passed to + the command to specify non-default path for the command + run on the other end. + -f, \--force:: When `git-fetch` is used with `<rbranch>:<lbranch>` refspec, it refuses to update the local branch diff --git a/git-fetch.sh b/git-fetch.sh index 4a0cb32f30..d1659e2cfe 100755 --- a/git-fetch.sh +++ b/git-fetch.sh @@ -17,12 +17,18 @@ append= force= verbose= update_head_ok= +exec= while case "$#" in 0) break ;; esac do case "$1" in -a|--a|--ap|--app|--appe|--appen|--append) append=t ;; + -u|--u|--up|--upl|--uploa|--upload|--upload-|--upload-p|--upload-pa|\ + --upload-pac|--upload-pack) + shift + exec="--exec=$1" + ;; -f|--f|--fo|--for|--forc|--force) force=t ;; @@ -312,7 +318,7 @@ fetch_main () { ( : subshell because we muck with IFS IFS=" $LF" ( - git-fetch-pack $keep "$remote" $rref || echo failed "$remote" + git-fetch-pack $exec $keep "$remote" $rref || echo failed "$remote" ) | while read sha1 remote_name do |