# [PATCH v2] git-send-pack: Fix --all option when used with directory

2 messages from 2016-03-24 to 2016-03-24. Participants: Stanislav Kolotinskiy.
Thread: https://gitlist.dev/t/41809

## Stanislav Kolotinskiy, 2016-03-24 14:14

Subject: [PATCH v2] git-send-pack: Fix --all option when used with directory
Message-ID: <1458828858-3577-1-git-send-email-stanislav@assembla.com>
URL: https://gitlist.dev/e/1458828858-3577-1-git-send-email-stanislav%40assembla.com

```
---
 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.7.4

```

## Stanislav Kolotinskiy, 2016-03-24 14:17

Subject: Re: [PATCH v2] git-send-pack: Fix --all option when used with directory
Message-ID: <56F3F70F.2070207@assembla.com>
URL: https://gitlist.dev/e/56F3F70F.2070207%40assembla.com
In-Reply-To: <1458828858-3577-1-git-send-email-stanislav@assembla.com>

```
Please ignore this thread, I sent the email without making sure that I 
copied commit message. I'm sorry for that.

On 24/03/16 16:14, Stanislav Kolotinskiy wrote:
> ---
>   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 &&
>   	(

```
