提交 c40fdd01 编写于 作者: M Max Kirillov 提交者: Junio C Hamano

reachable.c: add HEAD to reachability starting commits

HEAD is not explicitly used as a starting commit for
calculating reachability, so if it's detached and reflogs
are disabled it may be pruned.

Add tests which demonstrate it. Test 'prune: prune former HEAD after checking
out branch' also reverts changes to repository.
Signed-off-by: NMax Kirillov <max@max630.net>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 96db324a
...@@ -229,6 +229,9 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog, ...@@ -229,6 +229,9 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
/* Add all external refs */ /* Add all external refs */
for_each_ref(add_one_ref, revs); for_each_ref(add_one_ref, revs);
/* detached HEAD is not included in the list above */
head_ref(add_one_ref, revs);
/* Add all reflog info */ /* Add all reflog info */
if (mark_reflog) if (mark_reflog)
for_each_reflog(add_one_reflog, revs); for_each_reflog(add_one_reflog, revs);
......
...@@ -104,6 +104,28 @@ test_expect_success 'prune: prune unreachable heads' ' ...@@ -104,6 +104,28 @@ test_expect_success 'prune: prune unreachable heads' '
' '
test_expect_success 'prune: do not prune detached HEAD with no reflog' '
git checkout --detach --quiet &&
git commit --allow-empty -m "detached commit" &&
# verify that there is no reflogs
# (should be removed and disabled by previous test)
test ! -e .git/logs &&
git prune -n >prune_actual &&
: >prune_expected &&
test_cmp prune_actual prune_expected
'
test_expect_success 'prune: prune former HEAD after checking out branch' '
head_sha1=$(git rev-parse HEAD) &&
git checkout --quiet master &&
git prune -v >prune_actual &&
grep "$head_sha1" prune_actual
'
test_expect_success 'prune: do not prune heads listed as an argument' ' test_expect_success 'prune: do not prune heads listed as an argument' '
: > file2 && : > file2 &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册