146
147
check_describe "A-*[0-9a-f]" --dirty
148
149
+test_expect_success 'describe --dirty with --work-tree' '
150
+ (
151
+ cd "$TEST_DIRECTORY" &&
152
+ git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
153
+ ) &&
154
+ grep "^A-[1-9][0-9]\?-g[0-9a-f]\+$" out
155
+'
156
+
157
test_expect_success 'set-up dirty work tree' '
158
echo >>file
159
'
160
161
check_describe "A-*[0-9a-f]-dirty" --dirty
162
163
+test_expect_success 'describe --dirty with --work-tree (dirty)' '
164
+ (
165
+ cd "$TEST_DIRECTORY" &&
166
+ git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
167
+ ) &&
168
+ grep "^A-[1-9][0-9]\?-g[0-9a-f]\+-dirty$" out
169
+'
170
+
171
check_describe "A-*[0-9a-f].mod" --dirty=.mod
172
173
+test_expect_success 'describe --dirty=.mod with --work-tree (dirty)' '
174
+ (
175
+ cd "$TEST_DIRECTORY" &&
176
+ git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty=.mod >"$TRASH_DIRECTORY/out"
177
+ ) &&
178
+ grep "^A-[1-9][0-9]\?-g[0-9a-f]\+.mod$" out
179
+'
180
+
181
test_expect_success 'describe --dirty HEAD' '
182
test_must_fail git describe --dirty HEAD
183
'
328
mv .git/modules/sub1/ .git/modules/sub_moved &&
329
test_must_fail git describe --dirty
330
'
331
+
332
test_expect_success 'describe ignoring a broken submodule' '
333
git describe --broken >out &&
334
+ grep broken out
335
+'
336
+
337
+test_expect_success 'describe with --work-tree ignoring a broken submodule' '
338
+ (
339
+ cd "$TEST_DIRECTORY" &&
340
+ git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --broken >"$TRASH_DIRECTORY/out"
341
+ ) &&
342
test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" &&
343
grep broken out
344
'