From 41d796ed5cd78d159f8a8bfa3b54bdbe5d9383a3 Mon Sep 17 00:00:00 2001 From: David Turner Date: Thu, 7 Apr 2016 15:03:11 -0400 Subject: refs: on symref reflog expire, lock symref not referrent When locking a symbolic ref to expire a reflog, lock the symbolic ref (using REF_NODEREF) instead of its referent. Add a test for this. Signed-off-by: David Turner Reviewed-by: Michael Haggerty Signed-off-by: Junio C Hamano --- refs/files-backend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'refs/files-backend.c') diff --git a/refs/files-backend.c b/refs/files-backend.c index 71848ab9d6..5e67bfae68 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -3314,7 +3314,8 @@ int reflog_expire(const char *refname, const unsigned char *sha1, * reference itself, plus we might need to update the * reference if --updateref was specified: */ - lock = lock_ref_sha1_basic(refname, sha1, NULL, NULL, 0, &type, &err); + lock = lock_ref_sha1_basic(refname, sha1, NULL, NULL, REF_NODEREF, + &type, &err); if (!lock) { error("cannot lock ref '%s': %s", refname, err.buf); strbuf_release(&err); -- cgit v1.2.3