]>
Commit | Line | Data |
---|---|---|
5c97558c JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2005 Junio C Hamano | |
4 | # | |
5 | ||
6 | test_description='Test rename detection in diff engine. | |
7 | ||
8 | ' | |
9 | . ./test-lib.sh | |
ec1fcc16 | 10 | . ../diff-lib.sh |
5c97558c JH |
11 | |
12 | echo >path0 'Line 1 | |
13 | Line 2 | |
14 | Line 3 | |
15 | Line 4 | |
16 | Line 5 | |
17 | Line 6 | |
18 | Line 7 | |
19 | Line 8 | |
20 | Line 9 | |
21 | Line 10 | |
22 | line 11 | |
23 | Line 12 | |
24 | Line 13 | |
25 | Line 14 | |
26 | Line 15 | |
27 | ' | |
28 | ||
29 | test_expect_success \ | |
10455d2a | 30 | 'update-index --add a file.' \ |
5be60078 | 31 | 'git update-index --add path0' |
5c97558c JH |
32 | |
33 | test_expect_success \ | |
34 | 'write that tree.' \ | |
5be60078 | 35 | 'tree=$(git write-tree) && echo $tree' |
5c97558c JH |
36 | |
37 | sed -e 's/line/Line/' <path0 >path1 | |
38 | rm -f path0 | |
39 | test_expect_success \ | |
40 | 'renamed and edited the file.' \ | |
5be60078 | 41 | 'git update-index --add --remove path0 path1' |
5c97558c JH |
42 | |
43 | test_expect_success \ | |
5be60078 JH |
44 | 'git diff-index -p -M after rename and editing.' \ |
45 | 'git diff-index -p -M $tree >current' | |
5c97558c JH |
46 | cat >expected <<\EOF |
47 | diff --git a/path0 b/path1 | |
dc938417 LT |
48 | rename from path0 |
49 | rename to path1 | |
5c97558c JH |
50 | --- a/path0 |
51 | +++ b/path1 | |
acb72577 | 52 | @@ -8,7 +8,7 @@ Line 7 |
5c97558c JH |
53 | Line 8 |
54 | Line 9 | |
55 | Line 10 | |
56 | -line 11 | |
57 | +Line 11 | |
58 | Line 12 | |
59 | Line 13 | |
60 | Line 14 | |
61 | EOF | |
57fe64a4 JH |
62 | |
63 | test_expect_success \ | |
64 | 'validate the output.' \ | |
ec1fcc16 | 65 | 'compare_diff_patch current expected' |
57fe64a4 | 66 | |
0ce39643 JS |
67 | test_expect_success 'favour same basenames over different ones' ' |
68 | cp path1 another-path && | |
69 | git add another-path && | |
70 | git commit -m 1 && | |
71 | git rm path1 && | |
72 | mkdir subdir && | |
73 | git mv another-path subdir/path1 && | |
637efc34 | 74 | git status | grep "renamed: .*path1 -> subdir/path1"' |
0ce39643 JS |
75 | |
76 | test_expect_success 'favour same basenames even with minor differences' ' | |
77 | git show HEAD:path1 | sed "s/15/16/" > subdir/path1 && | |
637efc34 | 78 | git status | grep "renamed: .*path1 -> subdir/path1"' |
0ce39643 | 79 | |
57fe64a4 | 80 | test_done |