David Aguilar <davvid@xxxxxxxxx> writes: > Signed-off-by: David Aguilar <davvid@xxxxxxxxx> > --- The reason why this change favours "test_config" over "git config" is not described here, but if we think about that, some of the changes in this may become questionable. > diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh > index 1a15e06..7eeb207 100755 > --- a/t/t7610-mergetool.sh > +++ b/t/t7610-mergetool.sh > @@ -14,7 +14,7 @@ Testing basic merge tool invocation' > # running mergetool > > test_expect_success 'setup' ' > - git config rerere.enabled true && > + test_config rerere.enabled true && > echo master >file1 && > echo master spaced >"spaced name" && > echo master file11 >file11 && This one does not have corresponding "git config" to remove the configuration when the setup is done, so this changes the behaviour. The remainder of the tests will run without rerere.enabled set. If this change does not make a difference, perhaps we do not even need to set rerere.enabled here in the first place? But do later tests perform merges that can potentially be affected by the setting of rerere.enabled? If so, this change can break them. If this change does not break existing tests, I would say this is a good change that anticipates that we may add more tests in the future that work in subdir and that makes sure to leave subdir in a predictable state for them. > @@ -112,7 +112,7 @@ test_expect_success 'custom mergetool' ' > ' > > test_expect_success 'mergetool crlf' ' > - git config core.autocrlf true && > + test_config core.autocrlf true && > git checkout -b test2 branch1 && > test_must_fail git merge master >/dev/null 2>&1 && > ( yes "" | git mergetool file1 >/dev/null 2>&1 ) && > @@ -129,7 +129,7 @@ test_expect_success 'mergetool crlf' ' > git submodule update -N && > test "$(cat submod/bar)" = "master submodule" && > git commit -m "branch1 resolved with mergetool - autocrlf" && > - git config core.autocrlf false && > + test_config core.autocrlf false && > git reset --hard > ' This one wants to set core.autocrlf to true while it runs, and then wants to reset to the original. When the test fails in the middle, however, we may abort this test and move on to the next one, while leaving core.autcrlf still set to "true", which may break later tests, hence use of test_config to ensure that the setting is reverted at the end of the test is the right thing to do. So the hunk #112 is correct, but the hunk #129 is questionable and even misleading. > @@ -176,7 +176,7 @@ test_expect_success 'mergetool skips autoresolved' ' > test_expect_success 'mergetool merges all from subdir' ' > ( > cd subdir && > - git config rerere.enabled false && > + test_config rerere.enabled false && > test_must_fail git merge master && > ( yes "r" | git mergetool ../submod ) && > ( yes "d" "d" | git mergetool --no-prompt ) && Same comment as the one for hunk #14 applies here. In principle, this change will make this test more isolated and is a good thing. > @@ -190,7 +190,7 @@ test_expect_success 'mergetool merges all from subdir' ' > ' > > test_expect_success 'mergetool skips resolved paths when rerere is active' ' > - git config rerere.enabled true && > + test_config rerere.enabled true && > rm -rf .git/rr-cache && > git checkout -b test5 branch1 && > git submodule update -N && Ditto. > @@ -204,7 +204,7 @@ test_expect_success 'mergetool skips resolved paths when rerere is active' ' > ' > > test_expect_success 'conflicted stash sets up rerere' ' > - git config rerere.enabled true && > + test_config rerere.enabled true && > git checkout stash1 && > echo "Conflicting stash content" >file11 && > git stash && Ditto. > @@ -232,7 +232,7 @@ test_expect_success 'conflicted stash sets up rerere' ' > > test_expect_success 'mergetool takes partial path' ' > git reset --hard && > - git config rerere.enabled false && > + test_config rerere.enabled false && > git checkout -b test12 branch1 && > git submodule update -N && > test_must_fail git merge master && Ditto. > @@ -505,14 +505,12 @@ test_expect_success 'file with no base' ' > > test_expect_success 'custom commands override built-ins' ' > git checkout -b test14 branch1 && > - git config mergetool.defaults.cmd "cat \"\$REMOTE\" >\"\$MERGED\"" && > - git config mergetool.defaults.trustExitCode true && > + test_config mergetool.defaults.cmd "cat \"\$REMOTE\" >\"\$MERGED\"" && > + test_config mergetool.defaults.trustExitCode true && > test_must_fail git merge master && > git mergetool --no-prompt --tool defaults -- both && > echo master both added >expected && > test_cmp both expected && > - git config --unset mergetool.defaults.cmd && > - git config --unset mergetool.defaults.trustExitCode && > git reset --hard master >/dev/null 2>&1 > ' This one is good; with test_config, you do not have to do the unsetting yourself. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html