t4015: let the test pass with any default branch name
PATCH 1/1 t4015: let the test pass with any default branch name
From: Johannes Schindelin <[email protected]>
We do not need to hard-code the actual branch name, as we have access to the reflog and can be a lot more precise at what we want.
Strangely enough, this test case would have succeeded even with an overridden default branch name, obviously for the wrong reason. Let's verify that it passes for the expected reason, by looking for a tell-tale in Git's output.
---
t4015: let the test pass with any default branch name
Aaaaand another issue, also found while working on
https://github.com/gitgitgadget/git/pull/762.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-794%2Fdscho%2Ft4015-and-default-branch-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-794/dscho/t4015-and-default-branch-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/794
t/t4015-diff-whitespace.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
t/t4015-diff-whitespace.sh +2 -1
@@ -883,7 +883,8 @@ test_expect_success 'combined diff with autocrlf conversion' ' echo >x goodbye && git commit -m "the other side" x && git config core.autocrlf true && - test_must_fail git merge master && + test_must_fail git merge @{2} >actual && + test_i18ngrep "Automatic merge failed" actual && git diff >actual.raw && sed -e "1,/^@@@/d" actual.raw >actual &&
base-commit: e31aba42fb12bdeb0f850829e008e1e3f43af500
Signature · 1 line
gitgitgadget
"Johannes Schindelin via GitGitGadget" <[email protected]>
Quoted 4 lines · writes:
From: Johannes Schindelin <[email protected]>
We do not need to hard-code the actual branch name, as we have access to the reflog and can be a lot more precise at what we want.
I am not enthused to see us going beyond "@{1}" or "@{-1}". It would make the test a bit too brittle as a future changes need to refrain from creating another commit and/or switching to a third branch to do some more set-up before coming here to attempt an merge.
In this particular case, "git merge @{-1}" may be more robust from that point of view
Thanks.
Quoted 19 lines
t/t4015-diff-whitespace.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)t/t4015-diff-whitespace.sh +2
-1@@ -883,7 +883,8 @@ test_expect_success 'combined diff with autocrlf conversion' ' echo >x goodbye && git commit -m "the other side" x && git config core.autocrlf true && - test_must_fail git merge master && + test_must_fail git merge @{2} >actual && + test_i18ngrep "Automatic merge failed" actual && git diff >actual.raw && sed -e "1,/^@@@/d" actual.raw >actual &&base-commit:
e31aba42fb12bdeb0f850829e008e1e3f43af500
Hi Junio,
Quoted 9 lines · Junio C Hamano
"Johannes Schindelin via GitGitGadget" <[email protected]>
Quoted 4 lines · writes:
From: Johannes Schindelin <[email protected]>
We do not need to hard-code the actual branch name, as we have access to the reflog and can be a lot more precise at what we want.
I am not enthused to see us going beyond "@{1}" or "@{-1}".
Right. It also makes it a bit harder to understand the test case for the occasional reader.
Quoted 6 lines
It would make the test a bit too brittle as a future changes need to refrain from creating another commit and/or switching to a third branch to do some more set-up before coming here to attempt an merge.
In this particular case, "git merge @{-1}" may be more robust from that point of view
It might be _slightly_ more robust, but not by a lot. I opted to use test_commit instead and then refer to the revision via the tag that is created by that function.
Ciao,
Dscho
Quoted 18 lines
Quoted 16 lines
t/t4015-diff-whitespace.sh +2
-1@@ -883,7 +883,8 @@ test_expect_success 'combined diff with autocrlf conversion' ' echo >x goodbye && git commit -m "the other side" x && git config core.autocrlf true && - test_must_fail git merge master && + test_must_fail git merge @{2} >actual && + test_i18ngrep "Automatic merge failed" actual && git diff >actual.raw && sed -e "1,/^@@@/d" actual.raw >actual &&base-commit:
e31aba42fb12bdeb0f850829e008e1e3f43af500
PATCH v2 1/1 t4015: let the test pass with any default branch name
In reply to Johannes Schindelin via GitGitGadgetFrom: Johannes Schindelin <[email protected]>
We do not need to hard-code the actual branch name, as we can use the test_commit function to simplify the code and use the tag it generates, thereby being a lot more precise in what we want.
Strangely enough, this test case would have succeeded even with an overridden default branch name, obviously for the wrong reason. Let's verify that it passes for the expected reason, by looking for a tell-tale in Git's output.
---
t4015: let the test pass with any default branch name
Aaaaand another issue, also found while working on
https://github.com/gitgitgadget/git/pull/762.
Changes since v1:
* We now use test_commit and the tag it creates, rather than the reflog.
*
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-794%2Fdscho%2Ft4015-and-default-branch-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-794/dscho/t4015-and-default-branch-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/794
Range-diff vs v1:
1: 5467cae0dd ! 1: 2f6d07fe90 t4015: let the test pass with any default branch name
@@ Metadata
## Commit message ##
t4015: let the test pass with any default branch name
- We do not need to hard-code the actual branch name, as we have access to
- the reflog and can be a lot more precise at what we want.
+ We do not need to hard-code the actual branch name, as we can use the
+ test_commit function to simplify the code and use the tag it
+ generates, thereby being a lot more precise in what we want.
Strangely enough, this test case would have succeeded even with an overridden default branch name, obviously for the wrong reason. Let's
@@ Commit message
## t/t4015-diff-whitespace.sh ##
-@@ t/t4015-diff-whitespace.sh: test_expect_success 'combined diff with autocrlf conversion' ' +@@ t/t4015-diff-whitespace.sh: test_expect_success 'rename empty' '
+ test_expect_success 'combined diff with autocrlf conversion' '
+
+ git reset --hard &&
+- echo >x hello &&
+- git commit -m "one side" x &&
++ test_commit "one side" x hello one-side &&
+ git checkout HEAD^ &&
echo >x goodbye &&
git commit -m "the other side" x &&
git config core.autocrlf true &&
- test_must_fail git merge master &&
-+ test_must_fail git merge @{2} >actual &&
++ test_must_fail git merge one-side >actual &&
+ test_i18ngrep "Automatic merge failed" actual &&
git diff >actual.raw &&
t/t4015-diff-whitespace.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
t/t4015-diff-whitespace.sh +3 -3
@@ -877,13 +877,13 @@ test_expect_success 'rename empty' ' test_expect_success 'combined diff with autocrlf conversion' ' git reset --hard && - echo >x hello && - git commit -m "one side" x && + test_commit "one side" x hello one-side && git checkout HEAD^ && echo >x goodbye && git commit -m "the other side" x && git config core.autocrlf true && - test_must_fail git merge master && + test_must_fail git merge one-side >actual && + test_i18ngrep "Automatic merge failed" actual && git diff >actual.raw && sed -e "1,/^@@@/d" actual.raw >actual &&
base-commit: e31aba42fb12bdeb0f850829e008e1e3f43af500
Signature · 1 line
gitgitgadget