summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-04-13 21:12:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-04-13 21:12:33 (GMT)
commit5250af49f03b5f2da96770523f69d7584693b553 (patch)
treec689fbedf534338c89631969546c230b4fbc51cf
parent26effb8487386e431990905d4eba7e81f1018eda (diff)
parentc6777563cd2b3e1d1989732c3daf05a72fddb068 (diff)
downloadgit-5250af49f03b5f2da96770523f69d7584693b553.zip
git-5250af49f03b5f2da96770523f69d7584693b553.tar.gz
git-5250af49f03b5f2da96770523f69d7584693b553.tar.bz2
Merge branch 'sk/send-pack-all-fix'
"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 5b9dd6a..1ff5a67 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 04cea97..305ca7a 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 &&
(