17
git config color.decorate.remoteBranch red &&
18
git config color.decorate.tag "reverse bold yellow" &&
19
git config color.decorate.stash magenta &&
20
+ git config color.decorate.grafted black &&
21
git config color.decorate.HEAD cyan &&
22
23
c_reset="<RESET>" &&
28
c_tag="<BOLD;REVERSE;YELLOW>" &&
29
c_stash="<MAGENTA>" &&
30
c_HEAD="<CYAN>" &&
31
+ c_grafted="<BLACK>" &&
32
33
test_commit A &&
34
git clone . other &&
68
cmp_filtered_decorations
69
'
70
71
+test_expect_success 'test coloring with replace-objects' '
72
+ test_when_finished rm -rf .git/refs/replace* &&
73
+ test_commit C &&
74
+ test_commit D &&
75
+
76
+ git replace HEAD~1 HEAD~2 &&
77
+
78
+ cat >expect <<-EOF &&
79
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_HEAD}HEAD -> \
80
+${c_reset}${c_branch}main${c_reset}${c_commit}, \
81
+${c_reset}${c_tag}tag: D${c_reset}${c_commit})${c_reset} D
82
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: C${c_reset}${c_commit}, \
83
+${c_reset}${c_grafted}replaced${c_reset}${c_commit})${c_reset} B
84
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: A${c_reset}${c_commit})${c_reset} A
85
+EOF
86
+
87
+ git log --first-parent --no-abbrev --decorate --oneline --color=always HEAD >actual &&
88
+ cmp_filtered_decorations &&
89
+ git replace -d HEAD~1 &&
90
+
91
+ GIT_REPLACE_REF_BASE=refs/replace2/ git replace HEAD~1 HEAD~2 &&
92
+ GIT_REPLACE_REF_BASE=refs/replace2/ git log --first-parent \
93
+ --no-abbrev --decorate --oneline --color=always HEAD >actual &&
94
+ cmp_filtered_decorations
95
+'
96
+
97
+test_expect_success 'test coloring with grafted commit' '
98
+ test_when_finished rm -rf .git/refs/replace* &&
99
+
100
+ git replace --graft HEAD HEAD~2 &&
101
+
102
+ cat >expect <<-EOF &&
103
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_HEAD}HEAD -> \
104
+${c_reset}${c_branch}main${c_reset}${c_commit}, \
105
+${c_reset}${c_tag}tag: D${c_reset}${c_commit}, \
106
+${c_reset}${c_grafted}replaced${c_reset}${c_commit})${c_reset} D
107
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: v1.0${c_reset}${c_commit}, \
108
+${c_reset}${c_tag}tag: B${c_reset}${c_commit})${c_reset} B
109
+ ${c_commit}COMMIT_ID${c_reset}${c_commit} (${c_reset}${c_tag}tag: A${c_reset}${c_commit})${c_reset} A
110
+ EOF
111
+
112
+ git log --first-parent --no-abbrev --decorate --oneline --color=always HEAD >actual &&
113
+ cmp_filtered_decorations &&
114
+ git replace -d HEAD &&
115
+
116
+ GIT_REPLACE_REF_BASE=refs/replace2/ git replace --graft HEAD HEAD~2 &&
117
+ GIT_REPLACE_REF_BASE=refs/replace2/ git log --first-parent \
118
+ --no-abbrev --decorate --oneline --color=always HEAD >actual &&
119
+ cmp_filtered_decorations
120
+'
121
+
122
test_done