aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-04-29 14:15:56 -0700
committerJunio C Hamano <gitster@pobox.com>2016-04-29 14:15:57 -0700
commit18c554b2720a869f1203a776cadd515fc6f3f840 (patch)
tree3015c48e406d980c401433fee20ba839b0166624
parentb96c396cce05c9559f335d5ed6856687036e01ba (diff)
parentc6777563cd2b3e1d1989732c3daf05a72fddb068 (diff)
downloadgit-18c554b2720a869f1203a776cadd515fc6f3f840.tar.gz
git-18c554b2720a869f1203a776cadd515fc6f3f840.tar.xz
Merge branch 'sk/send-pack-all-fix' into maint
"git send-pack --all <there>" was broken when its command line option parsing was written in the 2.6 timeframe. * sk/send-pack-all-fix: git-send-pack: fix --all option when used with directory
-rw-r--r--builtin/send-pack.c2
-rwxr-xr-xt/t5400-send-pack.sh12
2 files changed, 13 insertions, 1 deletions
diff --git a/builtin/send-pack.c b/builtin/send-pack.c
index 5b9dd6a9d..1ff5a6753 100644
--- a/builtin/send-pack.c
+++ b/builtin/send-pack.c
@@ -225,7 +225,7 @@ int cmd_send_pack(int argc, const char **argv, const char *prefix)
* --all and --mirror are incompatible; neither makes sense
* with any refspecs.
*/
- if ((refspecs && (send_all || args.send_mirror)) ||
+ if ((nr_refspecs > 0 && (send_all || args.send_mirror)) ||
(send_all && args.send_mirror))
usage_with_options(send_pack_usage, options);
diff --git a/t/t5400-send-pack.sh b/t/t5400-send-pack.sh
index 04cea97f8..305ca7a93 100755
--- a/t/t5400-send-pack.sh
+++ b/t/t5400-send-pack.sh
@@ -128,6 +128,18 @@ test_expect_success 'denyNonFastforwards trumps --force' '
test "$victim_orig" = "$victim_head"
'
+test_expect_success 'send-pack --all sends all branches' '
+ # make sure we have at least 2 branches with different
+ # values, just to be thorough
+ git branch other-branch HEAD^ &&
+
+ git init --bare all.git &&
+ git send-pack --all all.git &&
+ git for-each-ref refs/heads >expect &&
+ git -C all.git for-each-ref refs/heads >actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'push --all excludes remote-tracking hierarchy' '
mkdir parent &&
(