-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
diff: make sure work tree side is shown as 0{40} when different
Ping Yin noticed that "git diff-index --raw" shows 0{40} when work tree has submodule difference, but "git diff --raw" didn't correctly do so. There was a mistake in the diffcore_skip_stat_unmatch() that was meant to clean up the stat-only difference for running diff between the index and work tree and diff between the tree and the work tree, to cause it re-read from the submodule repository HEAD. When ce_stat_match() says work tree is different, we should always say 0{40} on the work tree side. This patch fixes the issue, and adds tests. Signed-off-by: Junio C Hamano <gitster@pobox.com>
- Loading branch information
Junio C Hamano
committed
Mar 2, 2008
1 parent
c8c16f2
commit 2b459b4
Showing
2 changed files
with
55 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#!/bin/sh | ||
|
||
test_description='difference in submodules' | ||
|
||
. ./test-lib.sh | ||
. ../diff-lib.sh | ||
|
||
_z40=0000000000000000000000000000000000000000 | ||
test_expect_success setup ' | ||
test_tick && | ||
test_create_repo sub && | ||
( | ||
cd sub && | ||
echo hello >world && | ||
git add world && | ||
git commit -m submodule | ||
) && | ||
test_tick && | ||
echo frotz >nitfol && | ||
git add nitfol sub && | ||
git commit -m superproject && | ||
( | ||
cd sub && | ||
echo goodbye >world && | ||
git add world && | ||
git commit -m "submodule #2" | ||
) && | ||
set x $( | ||
cd sub && | ||
git rev-list HEAD | ||
) && | ||
echo ":160000 160000 $3 $_z40 M sub" >expect | ||
' | ||
|
||
test_expect_success 'git diff --raw HEAD' ' | ||
git diff --raw --abbrev=40 HEAD >actual && | ||
diff -u expect actual | ||
' | ||
|
||
test_expect_success 'git diff-index --raw HEAD' ' | ||
git diff-index --raw HEAD >actual.index && | ||
diff -u expect actual.index | ||
' | ||
|
||
test_expect_success 'git diff-files --raw' ' | ||
git diff-files --raw >actual.files && | ||
diff -u expect actual.files | ||
' | ||
|
||
test_done |