Johannes Sixt <j6t@xxxxxxxx> writes: > We might wonder why our && chain check does not catch this case: > The && chain check uses a strange exit code with the expectation that > the second or later part of a broken && chain would not exit with this > particular code. > > This expectation does not work in this case because __git_ps1, being > the first command in the second part of the broken && chain, records > the current exit code, does its work, and finally returns to the caller > with the recorded exit code. This fools our && chain check. > > Signed-off-by: Johannes Sixt <j6t@xxxxxxxx> > --- > t/t9903-bash-prompt.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh > index 0db4469..97c9b32 100755 > --- a/t/t9903-bash-prompt.sh > +++ b/t/t9903-bash-prompt.sh > @@ -177,7 +177,7 @@ test_expect_success 'prompt - interactive rebase' ' > git checkout b1 && > test_when_finished "git checkout master" && > git rebase -i HEAD^ && > - test_when_finished "git rebase --abort" > + test_when_finished "git rebase --abort" && > __git_ps1 >"$actual" && > test_cmp expected "$actual" > ' Thanks.