12
git name-rev --tags --stdin | sed -e "s|$OID_REGEX (tags/\([^)]*\)) |\1 |g"
13
}
14
15
+#
16
+# Create a test repo with interesting commit graph:
17
+#
18
+# A--B----------G--H--I--K--L
19
+# \ \ / /
20
+# \ \ / /
21
+# C------E---F J
22
+# \_/
23
+#
24
+# The commits are laid out from left-to-right starting with
25
+# the root commit A and terminating at the tip commit L.
26
+#
27
+# There are a few places where we adjust the commit date or
28
+# author date to make the --topo-order, --date-order, and
29
+# --author-date-order flags produce different output.
30
+
31
test_expect_success setup '
32
echo "Hi there" >file &&
33
echo "initial" >lost &&
37
38
git branch other-branch &&
39
40
+ git symbolic-ref HEAD refs/heads/unrelated &&
41
+ git rm -f "*" &&
42
+ echo "Unrelated branch" >side &&
43
+ git add side &&
44
+ test_tick && git commit -m "Side root" &&
45
+ note J &&
46
+ git checkout master &&
47
+
48
echo "Hello" >file &&
49
echo "second" >lost &&
50
git add file lost &&
27
- test_tick && git commit -m "Modified file and lost" &&
51
+ test_tick && GIT_AUTHOR_DATE=$(($test_tick + 120)) git commit -m "Modified file and lost" &&
52
note B &&
53
54
git checkout other-branch &&
87
test_tick && git commit -a -m "Final change" &&
88
note I &&
89
66
- git symbolic-ref HEAD refs/heads/unrelated &&
67
- git rm -f "*" &&
68
- echo "Unrelated branch" >side &&
69
- git add side &&
70
- test_tick && git commit -m "Side root" &&
71
- note J &&
72
-
90
git checkout master &&
91
test_tick && git merge --allow-unrelated-histories -m "Coolest" unrelated &&
92
note K &&
120
check_outcome success "$@"
121
}
122
106
-check_result 'L K J I H G F E D C B A' --full-history
123
+check_result 'L K J I H F E D C G B A' --full-history --topo-order
124
+check_result 'L K I H G F E D C B J A' --full-history
125
+check_result 'L K I H G F E D C B J A' --full-history --date-order
126
+check_result 'L K I H G F E D B C J A' --full-history --author-date-order
127
check_result 'K I H E C B A' --full-history -- file
128
check_result 'K I H E C B A' --full-history --topo-order -- file
129
check_result 'K I H E C B A' --full-history --date-order -- file
130
+check_result 'K I H E B C A' --full-history --author-date-order -- file
131
check_result 'I E C B A' --simplify-merges -- file
132
+check_result 'I E C B A' --simplify-merges --topo-order -- file
133
+check_result 'I E C B A' --simplify-merges --date-order -- file
134
+check_result 'I E B C A' --simplify-merges --author-date-order -- file
135
check_result 'I B A' -- file
136
check_result 'I B A' --topo-order -- file
137
+check_result 'I B A' --date-order -- file
138
+check_result 'I B A' --author-date-order -- file
139
check_result 'H' --first-parent -- another-file
140
+check_result 'H' --first-parent --topo-order -- another-file
141
142
check_result 'E C B A' --full-history E -- lost
143
test_expect_success 'full history simplification without parent' '