diff options
author | Steve Haslam <shaslam@lastminute.com> | 2008-07-25 18:51:51 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-07-25 17:10:14 -0700 |
commit | 837c8767130ec71089e654f92cf24e8277a3bda5 (patch) | |
tree | a5a23daaadff6abc31004445e206655f0d1140c8 | |
parent | 7198203ae37c11327c0d01f1e37f3e74381755a9 (diff) | |
download | git-837c8767130ec71089e654f92cf24e8277a3bda5.tar.gz |
Propagate -u/--upload-pack option of "git clone" to transport.
The -u option to override the remote system's path to git-upload-pack was
being ignored by "git clone"; caused by a missing call to
transport_set_option to set TRANS_OPT_UPLOADPACK. Presumably this crept in
when git-clone was converted from shell to C.
Signed-off-by: Steve Haslam <shaslam@lastminute.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-clone.c | 4 | ||||
-rwxr-xr-x | t/t5602-clone-remote-exec.sh | 26 |
2 files changed, 30 insertions, 0 deletions
diff --git a/builtin-clone.c b/builtin-clone.c index 352224591f..e086a40b41 100644 --- a/builtin-clone.c +++ b/builtin-clone.c @@ -480,6 +480,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix) if (option_quiet) transport->verbose = -1; + if (option_upload_pack) + transport_set_option(transport, TRANS_OPT_UPLOADPACK, + option_upload_pack); + refs = transport_get_remote_refs(transport); transport_fetch_refs(transport, refs); } diff --git a/t/t5602-clone-remote-exec.sh b/t/t5602-clone-remote-exec.sh new file mode 100755 index 0000000000..8367a6845f --- /dev/null +++ b/t/t5602-clone-remote-exec.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +test_description=clone + +. ./test-lib.sh + +test_expect_success setup ' + echo "#!/bin/sh" > not_ssh + echo "echo \"\$*\" > not_ssh_output" >> not_ssh + echo "exit 1" >> not_ssh + chmod +x not_ssh +' + +test_expect_success 'clone calls git-upload-pack unqualified with no -u option' ' + GIT_SSH=./not_ssh git clone localhost:/path/to/repo junk + echo "localhost git-upload-pack '\''/path/to/repo'\''" >expected + test_cmp expected not_ssh_output +' + +test_expect_success 'clone calls specified git-upload-pack with -u option' ' + GIT_SSH=./not_ssh git clone -u /something/bin/git-upload-pack localhost:/path/to/repo junk + echo "localhost /something/bin/git-upload-pack '\''/path/to/repo'\''" >expected + test_cmp expected not_ssh_output +' + +test_done |