зеркало из https://github.com/microsoft/git.git
Merge branch 'pb/range-diff-with-submodule'
"git -c diff.submodule=log range-diff" did not show anything for submodules that changed in the ranges being compared, and "git -c diff.submodule=diff range-diff" did not work correctly. Fix this by including the "--submodule=short" output unconditionally to be compared. * pb/range-diff-with-submodule: range-diff: show submodule changes irrespective of diff.submodule
This commit is contained in:
Коммит
ecbd60ae99
|
@ -44,7 +44,7 @@ static int read_patches(const char *range, struct string_list *list,
|
|||
|
||||
strvec_pushl(&cp.args, "log", "--no-color", "-p", "--no-merges",
|
||||
"--reverse", "--date-order", "--decorate=no",
|
||||
"--no-prefix",
|
||||
"--no-prefix", "--submodule=short",
|
||||
/*
|
||||
* Choose indicators that are not used anywhere
|
||||
* else in diffs, but still look reasonable
|
||||
|
|
|
@ -772,4 +772,55 @@ test_expect_success '--left-only/--right-only' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'submodule changes are shown irrespective of diff.submodule' '
|
||||
git init sub-repo &&
|
||||
test_commit -C sub-repo sub-first &&
|
||||
sub_oid1=$(git -C sub-repo rev-parse HEAD) &&
|
||||
test_commit -C sub-repo sub-second &&
|
||||
sub_oid2=$(git -C sub-repo rev-parse HEAD) &&
|
||||
test_commit -C sub-repo sub-third &&
|
||||
sub_oid3=$(git -C sub-repo rev-parse HEAD) &&
|
||||
|
||||
git checkout -b main-sub topic &&
|
||||
git submodule add ./sub-repo sub &&
|
||||
git -C sub checkout --detach sub-first &&
|
||||
git commit -m "add sub" sub &&
|
||||
sup_oid1=$(git rev-parse --short HEAD) &&
|
||||
git checkout -b topic-sub &&
|
||||
git -C sub checkout sub-second &&
|
||||
git commit -m "change sub" sub &&
|
||||
sup_oid2=$(git rev-parse --short HEAD) &&
|
||||
git checkout -b modified-sub main-sub &&
|
||||
git -C sub checkout sub-third &&
|
||||
git commit -m "change sub" sub &&
|
||||
sup_oid3=$(git rev-parse --short HEAD) &&
|
||||
sup_oid0=$(test_oid __) &&
|
||||
|
||||
test_config diff.submodule log &&
|
||||
git range-diff topic topic-sub modified-sub >actual &&
|
||||
cat >expect <<-EOF &&
|
||||
1: $sup_oid1 = 1: $sup_oid1 add sub
|
||||
2: $sup_oid2 < -: $sup_oid0 change sub
|
||||
-: $sup_oid0 > 2: $sup_oid3 change sub
|
||||
EOF
|
||||
test_cmp expect actual &&
|
||||
test_config diff.submodule diff &&
|
||||
git range-diff topic topic-sub modified-sub >actual &&
|
||||
git range-diff --creation-factor=100 topic topic-sub modified-sub >actual &&
|
||||
cat >expect <<-EOF &&
|
||||
1: $sup_oid1 = 1: $sup_oid1 add sub
|
||||
2: $sup_oid2 ! 2: $sup_oid3 change sub
|
||||
@@ Commit message
|
||||
## sub ##
|
||||
@@
|
||||
-Subproject commit $sub_oid1
|
||||
-+Subproject commit $sub_oid2
|
||||
++Subproject commit $sub_oid3
|
||||
EOF
|
||||
test_cmp expect actual &&
|
||||
test_config diff.submodule diff &&
|
||||
git range-diff --creation-factor=100 topic topic-sub modified-sub >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче