@@ -279,6 +279,42 @@ test_expect_success 'git branch -M and -C fail on detached HEAD' '
279
279
test_cmp expect err
280
280
'
281
281
282
+ test_expect_success ' git branch -d on orphan HEAD (merged)' '
283
+ test_when_finished git checkout main &&
284
+ git checkout --orphan orphan &&
285
+ test_when_finished "rm -rf .git/objects/commit-graph*" &&
286
+ git commit-graph write --reachable &&
287
+ git branch --track to-delete main &&
288
+ git branch -d to-delete
289
+ '
290
+
291
+ test_expect_success ' git branch -d on orphan HEAD (merged, graph)' '
292
+ test_when_finished git checkout main &&
293
+ git checkout --orphan orphan &&
294
+ git branch --track to-delete main &&
295
+ git branch -d to-delete
296
+ '
297
+
298
+ test_expect_success ' git branch -d on orphan HEAD (unmerged)' '
299
+ test_when_finished git checkout main &&
300
+ git checkout --orphan orphan &&
301
+ test_when_finished "git branch -D to-delete" &&
302
+ git branch to-delete main &&
303
+ test_must_fail git branch -d to-delete 2>err &&
304
+ grep "not fully merged" err
305
+ '
306
+
307
+ test_expect_success ' git branch -d on orphan HEAD (unmerged, graph)' '
308
+ test_when_finished git checkout main &&
309
+ git checkout --orphan orphan &&
310
+ test_when_finished "git branch -D to-delete" &&
311
+ git branch to-delete main &&
312
+ test_when_finished "rm -rf .git/objects/commit-graph*" &&
313
+ git commit-graph write --reachable &&
314
+ test_must_fail git branch -d to-delete 2>err &&
315
+ grep "not fully merged" err
316
+ '
317
+
282
318
test_expect_success ' git branch -v -d t should work' '
283
319
git branch t &&
284
320
git rev-parse --verify refs/heads/t &&
0 commit comments