Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-10-06 00:01:54 +0300
committerJunio C Hamano <gitster@pobox.com>2020-10-06 00:01:55 +0300
commit7da656f1e083b065400c4ab92405c6332481eb7a (patch)
tree45b808e3d89448356fc4a591b9b3358034d113b1 /t
parent8e3ec76a20d6abf5dd8ceb3f5f2c157000e4c13e (diff)
parent957876f17d75b5cd0e94b85d3df843bb1e9ae110 (diff)
Merge branch 'jk/diff-cc-oidfind-fix'
"log -c --find-object=X" did not work well to find a merge that involves a change to an object X from only one parent. * jk/diff-cc-oidfind-fix: combine-diff: handle --find-object in multitree code path
Diffstat (limited to 't')
-rwxr-xr-xt/t4064-diff-oidfind.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/t/t4064-diff-oidfind.sh b/t/t4064-diff-oidfind.sh
index 3bdf317af8..6d8c8986fc 100755
--- a/t/t4064-diff-oidfind.sh
+++ b/t/t4064-diff-oidfind.sh
@@ -65,4 +65,59 @@ test_expect_success 'find a submodule' '
test_cmp expect actual
'
+test_expect_success 'set up merge tests' '
+ test_commit base &&
+
+ git checkout -b boring base^ &&
+ echo boring >file &&
+ git add file &&
+ git commit -m boring &&
+
+ git checkout -b interesting base^ &&
+ echo interesting >file &&
+ git add file &&
+ git commit -m interesting &&
+
+ blob=$(git rev-parse interesting:file)
+'
+
+test_expect_success 'detect merge which introduces blob' '
+ git checkout -B merge base &&
+ git merge --no-commit boring &&
+ echo interesting >file &&
+ git commit -am "introduce blob" &&
+ git diff-tree --format=%s --find-object=$blob -c --name-status HEAD >actual &&
+ cat >expect <<-\EOF &&
+ introduce blob
+
+ AM file
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'detect merge which removes blob' '
+ git checkout -B merge interesting &&
+ git merge --no-commit base &&
+ echo boring >file &&
+ git commit -am "remove blob" &&
+ git diff-tree --format=%s --find-object=$blob -c --name-status HEAD >actual &&
+ cat >expect <<-\EOF &&
+ remove blob
+
+ MA file
+ EOF
+ test_cmp expect actual
+'
+
+test_expect_success 'do not detect merge that does not touch blob' '
+ git checkout -B merge interesting &&
+ git merge -m "untouched blob" base &&
+ git diff-tree --format=%s --find-object=$blob -c --name-status HEAD >actual &&
+ cat >expect <<-\EOF &&
+ untouched blob
+
+ EOF
+ test_cmp expect actual
+'
+
test_done