Merge branch 'dk/format-patch-ignore-diff-submodule'
Setting diff.submodule to 'log' made "git format-patch" produce broken patches. * dk/format-patch-ignore-diff-submodule: format-patch: ignore diff.submodule setting t4255: test am submodule with diff.submodule
This commit is contained in:
commit
35d28f32e6
@ -705,7 +705,7 @@ static int git_format_config(const char *var, const char *value, void *cb)
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff") ||
|
||||
!strcmp(var, "color.ui")) {
|
||||
!strcmp(var, "color.ui") || !strcmp(var, "diff.submodule")) {
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "format.numbered")) {
|
||||
|
@ -18,4 +18,76 @@ am_3way () {
|
||||
KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1
|
||||
test_submodule_switch "am_3way"
|
||||
|
||||
test_expect_success 'setup diff.submodule' '
|
||||
test_commit one &&
|
||||
INITIAL=$(git rev-parse HEAD) &&
|
||||
|
||||
git init submodule &&
|
||||
(
|
||||
cd submodule &&
|
||||
test_commit two &&
|
||||
git rev-parse HEAD >../initial-submodule
|
||||
) &&
|
||||
git submodule add ./submodule &&
|
||||
git commit -m first &&
|
||||
|
||||
(
|
||||
cd submodule &&
|
||||
test_commit three &&
|
||||
git rev-parse HEAD >../first-submodule
|
||||
) &&
|
||||
git add submodule &&
|
||||
git commit -m second &&
|
||||
SECOND=$(git rev-parse HEAD) &&
|
||||
|
||||
(
|
||||
cd submodule &&
|
||||
git mv two.t four.t &&
|
||||
git commit -m "second submodule" &&
|
||||
git rev-parse HEAD >../second-submodule
|
||||
) &&
|
||||
test_commit four &&
|
||||
git add submodule &&
|
||||
git commit --amend --no-edit &&
|
||||
THIRD=$(git rev-parse HEAD) &&
|
||||
git submodule update --init
|
||||
'
|
||||
|
||||
run_test() {
|
||||
START_COMMIT=$1 &&
|
||||
EXPECT=$2 &&
|
||||
# Abort any merges in progress: the previous
|
||||
# test may have failed, and we should clean up.
|
||||
test_might_fail git am --abort &&
|
||||
git reset --hard $START_COMMIT &&
|
||||
rm -f *.patch &&
|
||||
git format-patch -1 &&
|
||||
git reset --hard $START_COMMIT^ &&
|
||||
git submodule update &&
|
||||
git am *.patch &&
|
||||
git submodule update &&
|
||||
git -C submodule rev-parse HEAD >actual &&
|
||||
test_cmp $EXPECT actual
|
||||
}
|
||||
|
||||
test_expect_success 'diff.submodule unset' '
|
||||
test_unconfig diff.submodule &&
|
||||
run_test $SECOND first-submodule
|
||||
'
|
||||
|
||||
test_expect_success 'diff.submodule unset with extra file' '
|
||||
test_unconfig diff.submodule &&
|
||||
run_test $THIRD second-submodule
|
||||
'
|
||||
|
||||
test_expect_success 'diff.submodule=log' '
|
||||
test_config diff.submodule log &&
|
||||
run_test $SECOND first-submodule
|
||||
'
|
||||
|
||||
test_expect_success 'diff.submodule=log with extra file' '
|
||||
test_config diff.submodule log &&
|
||||
run_test $THIRD second-submodule
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user