# [PATCH] t4014: support Git version strings with spaces

4 messages from 2025-12-13 to 2025-12-13. Participants: René Scharfe, Junio C Hamano.
Thread: https://gitlist.dev/t/64620

## René Scharfe, 2025-12-13 08:03

Subject: [PATCH] t4014: support Git version strings with spaces
Message-ID: <eb0e6533-44ef-4b85-b1aa-f43f6d4174a4@web.de>
URL: https://gitlist.dev/e/eb0e6533-44ef-4b85-b1aa-f43f6d4174a4%40web.de

```
git --version reports its version with the prefix "git version ".
Remove precisely this string instead of everything up to and including
the first space to avoid butchering version strings that contain spaces.
This helps Apple's release of Git, which reports its version like this:
"git version 2.50.1 (Apple Git-155)".

Signed-off-by: René Scharfe <l.s.r@web.de>
---
Not an Apple patch.  They use sed(1) instead, which inadvertently hides
the return code of git:

https://github.com/apple-oss-distributions/Git/blob/6b2f9bfe72d6d4b5c9bcc1c2d0236c026d321cba/src/git/t/t4014-format-patch.sh#L982

 t/t4014-format-patch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 2782b1fc18..21d6d0cd9e 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -980,7 +980,7 @@ test_expect_success 'format-patch --ignore-if-in-upstream HEAD' '
 
 test_expect_success 'get git version' '
 	git_version=$(git --version) &&
-	git_version=${git_version##* }
+	git_version=${git_version#git version }
 '
 
 signature() {
-- 
2.52.0

```

## Junio C Hamano, 2025-12-13 08:42

Subject: Re: [PATCH] t4014: support Git version strings with spaces
Message-ID: <xmqqsedeai33.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqsedeai33.fsf%40gitster.g
In-Reply-To: <eb0e6533-44ef-4b85-b1aa-f43f6d4174a4@web.de>

```
René Scharfe <l.s.r@web.de> writes:

> git --version reports its version with the prefix "git version ".
> Remove precisely this string instead of everything up to and including
> the first space to avoid butchering version strings that contain spaces.

"everything up to and including the last (rightmost) space"?

> This helps Apple's release of Git, which reports its version like this:
> "git version 2.50.1 (Apple Git-155)".

Sounds sensible.

> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> Not an Apple patch.  They use sed(1) instead, which inadvertently hides
> the return code of git:
>
> https://github.com/apple-oss-distributions/Git/blob/6b2f9bfe72d6d4b5c9bcc1c2d0236c026d321cba/src/git/t/t4014-format-patch.sh#L982
>
>  t/t4014-format-patch.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
> index 2782b1fc18..21d6d0cd9e 100755
> --- a/t/t4014-format-patch.sh
> +++ b/t/t4014-format-patch.sh
> @@ -980,7 +980,7 @@ test_expect_success 'format-patch --ignore-if-in-upstream HEAD' '
>  
>  test_expect_success 'get git version' '
>  	git_version=$(git --version) &&
> -	git_version=${git_version##* }
> +	git_version=${git_version#git version }
>  '
>  
>  signature() {

```

## René Scharfe, 2025-12-13 08:49

Subject: Re: [PATCH] t4014: support Git version strings with spaces
Message-ID: <1259f5a3-472c-4805-a6d2-8fb871de8922@web.de>
URL: https://gitlist.dev/e/1259f5a3-472c-4805-a6d2-8fb871de8922%40web.de
In-Reply-To: <xmqqsedeai33.fsf@gitster.g>

```
On 12/13/25 9:42 AM, Junio C Hamano wrote:
> René Scharfe <l.s.r@web.de> writes:
> 
>> git --version reports its version with the prefix "git version ".
>> Remove precisely this string instead of everything up to and including
>> the first space to avoid butchering version strings that contain spaces.
> 
> "everything up to and including the last (rightmost) space"?

Ugh, yes, did that before.  Perhaps a variant of left-right confusion? :-|

René


```

## René Scharfe, 2025-12-13 09:40

Subject: [PATCH v2] t4014: support Git version strings with spaces
Message-ID: <b79cba1d-f32b-4034-979e-fb9528d05f18@web.de>
URL: https://gitlist.dev/e/b79cba1d-f32b-4034-979e-fb9528d05f18%40web.de
In-Reply-To: <eb0e6533-44ef-4b85-b1aa-f43f6d4174a4@web.de>

```
git --version reports its version with the prefix "git version ".
Remove precisely this string instead of everything up to and including
the rightmost space to avoid butchering version strings that contain
spaces.  This helps Apple's release of Git, which reports its version
like this: "git version 2.50.1 (Apple Git-155)".

Signed-off-by: René Scharfe <l.s.r@web.de>
---
Changes since v1:
- fix description of current removal pattern in commit message

 t/t4014-format-patch.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 2782b1fc18..21d6d0cd9e 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -980,7 +980,7 @@ test_expect_success 'format-patch --ignore-if-in-upstream HEAD' '
 
 test_expect_success 'get git version' '
 	git_version=$(git --version) &&
-	git_version=${git_version##* }
+	git_version=${git_version#git version }
 '
 
 signature() {
-- 
2.52.0

```
