Volume XXII, number 280Wednesday, October 7, 2026Latest message 50 minutes ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

patcht3420-rebase-autostash: don't try to grep non-existing files

5 messages between Oct 10, 2021 and Jun 28, 2026, from SZEDER Gábor, Phillip Wood, Todd Zullinger, Junio C Hamano.

Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.

SZEDER GáborOct 10, 2021, 17:28 UTC on lore

Several tests in 't3420-rebase-autostash.sh' start various rebase processes that are expected to fail because of merge conflicts. The tests [1] checking that 'git rebase --quit' and autostash work together as expected after such a failure then run '! grep ...' to ensure that the dirty contents of the file is gone. However, due to the test repo's history and the choice of upstream branch that file shouldn't exist in the conflicted state at all, and thus it shouldn't exist after the subsequent 'git rebase --quit' either. Consequently, this 'grep' doesn't fail as expected, i.e. because it can't find the dirty content, but instead it fails, because it can't open the file.

Thighten this check by using 'test_path_is_missing' instead, thereby avoiding unexpected errors from 'grep' as well.

Previously 2745817028 (t3420-rebase-autostash: don't try to grep non-existing files, 2018-08-22) fixed a couple of similar issues; this one was added later in 9b2df3e8d0 (rebase: save autostash entry into stash reflog on --quit, 2020-04-28).

[1] This patch modifies only a single test, but that test is run
    several times with different strategies ('--apply', '--merge', and
    '--interactive'), hence the plural "tests".
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 t/t3420-rebase-autostash.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t3420-rebase-autostash.sh +1 −1
diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
index 43fcb68f27..bbe82d2c0c 100755
--- a/t/t3420-rebase-autostash.sh
+++ b/t/t3420-rebase-autostash.sh
@@ -200,7 +200,7 @@ testrebase () {
 		git rebase --quit &&
 		test_when_finished git stash drop &&
 		test_path_is_missing $dotest/autostash &&
-		! grep dirty file3 &&
+		test_path_is_missing file3 &&
 		git stash show -p >actual &&
 		test_cmp expect actual &&
 		git reset --hard &&
-- 
2.33.0.1279.g1a260bf8c2
SZEDER GáborJun 27, 2026, 06:59 UTC in reply to SZEDER Gábor on lore

Re: [PATCH] t3420-rebase-autostash: don't try to grep non-existing files

On Sun, Oct 10, 2021 at 07:28:09PM +0200, SZEDER Gábor wrote:
Show 43 quoted lines
> Several tests in 't3420-rebase-autostash.sh' start various rebase
> processes that are expected to fail because of merge conflicts.  The
> tests [1] checking that 'git rebase --quit' and autostash work
> together as expected after such a failure then run '! grep ...' to
> ensure that the dirty contents of the file is gone.  However, due to
> the test repo's history and the choice of upstream branch that file
> shouldn't exist in the conflicted state at all, and thus it shouldn't
> exist after the subsequent 'git rebase --quit' either.  Consequently,
> this 'grep' doesn't fail as expected, i.e. because it can't find the
> dirty content, but instead it fails, because it can't open the file.
> 
> Thighten this check by using 'test_path_is_missing' instead, thereby
> avoiding unexpected errors from 'grep' as well.
> 
> Previously 2745817028 (t3420-rebase-autostash: don't try to grep
> non-existing files, 2018-08-22) fixed a couple of similar issues; this
> one was added later in 9b2df3e8d0 (rebase: save autostash entry into
> stash reflog on --quit, 2020-04-28).
> 
> [1] This patch modifies only a single test, but that test is run
>     several times with different strategies ('--apply', '--merge', and
>     '--interactive'), hence the plural "tests".
> 
> Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
> ---
>  t/t3420-rebase-autostash.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
> index 43fcb68f27..bbe82d2c0c 100755
> --- a/t/t3420-rebase-autostash.sh
> +++ b/t/t3420-rebase-autostash.sh
> @@ -200,7 +200,7 @@ testrebase () {
>  		git rebase --quit &&
>  		test_when_finished git stash drop &&
>  		test_path_is_missing $dotest/autostash &&
> -		! grep dirty file3 &&
> +		test_path_is_missing file3 &&
>  		git stash show -p >actual &&
>  		test_cmp expect actual &&
>  		git reset --hard &&
> -- 
> 2.33.0.1279.g1a260bf8c2

It appears that this patch might have fallen quite deep through the cracks... ;)

But the issue this patch is addressing is still there, and the patch still applies cleanly after almost 5 years.

Phillip WoodJun 27, 2026, 09:03 UTC in reply to SZEDER Gábor on lore

Re: [PATCH] t3420-rebase-autostash: don't try to grep non-existing files

On 27/06/2026 07:59, SZEDER Gábor wrote:
Show 6 quoted lines
> On Sun, Oct 10, 2021 at 07:28:09PM +0200, SZEDER Gábor wrote:
>> diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
>> index 43fcb68f27..bbe82d2c0c 100755
>> --- a/t/t3420-rebase-autostash.sh
>> +++ b/t/t3420-rebase-autostash.sh
>> @@ -200,7 +200,7 @@ testrebase () {
With an extra context line we see
		test_path_is_missing file3 &&>>   		git rebase --quit &&
>>   		test_when_finished git stash drop &&
>>   		test_path_is_missing $dotest/autostash &&
>> -		! grep dirty file3 &&
>> +		test_path_is_missing file3 &&
and so it is quite clear that this change is correct
Thanks
Phillip
Show 12 quoted lines
>>   		git stash show -p >actual &&
>>   		test_cmp expect actual &&
>>   		git reset --hard &&
>> -- 
>> 2.33.0.1279.g1a260bf8c2
> 
> It appears that this patch might have fallen quite deep through the
> cracks... ;)
> 
> But the issue this patch is addressing is still there, and the patch
> still applies cleanly after almost 5 years.
> 
Todd ZullingerJun 27, 2026, 14:27 UTC in reply to SZEDER Gábor on lore

Re: [PATCH] t3420-rebase-autostash: don't try to grep non-existing files

SZEDER Gábor wrote:
Show 14 quoted lines
> On Sun, Oct 10, 2021 at 07:28:09PM +0200, SZEDER Gábor wrote:
>> Several tests in 't3420-rebase-autostash.sh' start various rebase
>> processes that are expected to fail because of merge conflicts.  The
>> tests [1] checking that 'git rebase --quit' and autostash work
>> together as expected after such a failure then run '! grep ...' to
>> ensure that the dirty contents of the file is gone.  However, due to
>> the test repo's history and the choice of upstream branch that file
>> shouldn't exist in the conflicted state at all, and thus it shouldn't
>> exist after the subsequent 'git rebase --quit' either.  Consequently,
>> this 'grep' doesn't fail as expected, i.e. because it can't find the
>> dirty content, but instead it fails, because it can't open the file.
>> 
>> Thighten this check by using 'test_path_is_missing' instead, thereby
>> avoiding unexpected errors from 'grep' as well.
Thighten -> Tighten
-- 
Todd
Junio C HamanoJun 28, 2026, 01:45 UTC in reply to SZEDER Gábor on lore

Re: [PATCH] t3420-rebase-autostash: don't try to grep non-existing files

SZEDER Gábor <szeder.dev@gmail.com> writes:
Show 47 quoted lines
> On Sun, Oct 10, 2021 at 07:28:09PM +0200, SZEDER Gábor wrote:
>> Several tests in 't3420-rebase-autostash.sh' start various rebase
>> processes that are expected to fail because of merge conflicts.  The
>> tests [1] checking that 'git rebase --quit' and autostash work
>> together as expected after such a failure then run '! grep ...' to
>> ensure that the dirty contents of the file is gone.  However, due to
>> the test repo's history and the choice of upstream branch that file
>> shouldn't exist in the conflicted state at all, and thus it shouldn't
>> exist after the subsequent 'git rebase --quit' either.  Consequently,
>> this 'grep' doesn't fail as expected, i.e. because it can't find the
>> dirty content, but instead it fails, because it can't open the file.
>> 
>> Thighten this check by using 'test_path_is_missing' instead, thereby
>> avoiding unexpected errors from 'grep' as well.
>> 
>> Previously 2745817028 (t3420-rebase-autostash: don't try to grep
>> non-existing files, 2018-08-22) fixed a couple of similar issues; this
>> one was added later in 9b2df3e8d0 (rebase: save autostash entry into
>> stash reflog on --quit, 2020-04-28).
>> 
>> [1] This patch modifies only a single test, but that test is run
>>     several times with different strategies ('--apply', '--merge', and
>>     '--interactive'), hence the plural "tests".
>> 
>> Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
>> ---
>>  t/t3420-rebase-autostash.sh | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/t/t3420-rebase-autostash.sh b/t/t3420-rebase-autostash.sh
>> index 43fcb68f27..bbe82d2c0c 100755
>> --- a/t/t3420-rebase-autostash.sh
>> +++ b/t/t3420-rebase-autostash.sh
>> @@ -200,7 +200,7 @@ testrebase () {
>>  		git rebase --quit &&
>>  		test_when_finished git stash drop &&
>>  		test_path_is_missing $dotest/autostash &&
>> -		! grep dirty file3 &&
>> +		test_path_is_missing file3 &&
>>  		git stash show -p >actual &&
>>  		test_cmp expect actual &&
>>  		git reset --hard &&
>> -- 
>> 2.33.0.1279.g1a260bf8c2
>
> It appears that this patch might have fallen quite deep through the
> cracks... ;)

Yeah, that indeed seems to be the case. It is surprising that nobody even had any comment on it back then.

> But the issue this patch is addressing is still there, and the patch
> still applies cleanly after almost 5 years.
Will take a look and queue.  Thanks.

Back to recent threads