[PATCH 3/5] delete_ref(): Remove the correct reflog when deleting symrefs
- From
Johan Herland <johan@herland.net>
- Date
- Oct 16, 2012, 13:44 UTC
- Message-ID
- <1350395094-11404-4-git-send-email-johan@herland.net>
- In-Reply-To
- <1350395094-11404-1-git-send-email-johan@herland.net>
When deleting a symref (e.g. HEAD), we would incorrectly remove the reflog of the dereferenced ref (e.g. .git/logs/refs/heads/master), insted of the symref's reflog (e.g. .git/logs/HEAD).
This patch ensures that we remove the reflog that corresponds to the removed (sym)ref.
Signed-off-by: Johan Herland <johan@herland.net> --- refs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/refs.c b/refs.c index df4fe20..f2508bf 100644 --- a/refs.c +++ b/refs.c @@ -1781,7 +1781,7 @@ int delete_ref(const char *refname, const unsigned char *sha1, int delopt) if (!delete_symref) ret |= repack_without_ref(refname); - unlink_or_warn(git_path("logs/%s", lock->ref_name)); + unlink_or_warn(git_path("logs/%s", refname)); invalidate_ref_cache(NULL); unlock_ref(lock); return ret;
-- 1.7.12.1.609.g5cd6968