Browse Source

Fix deleting reflog entries from HEAD reflog

dwim_ref() used to resolve HEAD symbolic ref to its target (i.e. current
branch).  This incorrectly removed the reflog entry from the current
branch when 'git reflog delete HEAD@{1}' was asked for.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 17 years ago
parent
commit
55beff4f53
  1. 4
      builtin-reflog.c
  2. 2
      t/t1410-reflog.sh

4
builtin-reflog.c

@ -604,8 +604,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix) @@ -604,8 +604,8 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
continue;
}

if (!dwim_ref(argv[i], spec - argv[i], sha1, &ref)) {
status |= error("%s points nowhere!", argv[i]);
if (!dwim_log(argv[i], spec - argv[i], sha1, &ref)) {
status |= error("no reflog for '%s'", argv[i]);
continue;
}


2
t/t1410-reflog.sh

@ -175,7 +175,7 @@ test_expect_success 'recover and check' ' @@ -175,7 +175,7 @@ test_expect_success 'recover and check' '

'

test_expect_failure 'delete' '
test_expect_success 'delete' '
echo 1 > C &&
test_tick &&
git commit -m rat C &&

Loading…
Cancel
Save