stanislav@xxxxxxxxxxxx writes: > From: Stanislav Kolotinskiy <stanislav@xxxxxxxxxxxx> > > When using git send-pack with --all option > and a target repository specification ([<host>:]<directory>), > usage message is being displayed instead of performing > the actual transmission. > > The reason for this issue is that destination and refspecs are being set > in the same conditional and are populated from argv. When a target > repository is passed, refspecs is being populated as well with its value. > This makes the check for refspecs not being NULL to always return true, > which, in conjunction with the check for --all or --mirror options, > is always true as well and returns usage message instead of proceeding. > > This ensures that send-pack will stop execution only when --all > or --mirror switch is used in conjunction with any refspecs passed. > > Signed-off-by: Stanislav Kolotinskiy <stanislav@xxxxxxxxxxxx> > --- Thanks, will queue. > builtin/send-pack.c | 2 +- > t/t5400-send-pack.sh | 12 ++++++++++++ > 2 files changed, 13 insertions(+), 1 deletion(-) > > diff --git a/builtin/send-pack.c b/builtin/send-pack.c > index f6e5d64..19f0577 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 && > ( > -- > 2.8.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html