From: Ronnie Sahlberg Date: Thu, 11 Sep 2014 17:34:36 +0000 (-0700) Subject: branch -d: simplify by using RESOLVE_REF_READING X-Git-Tag: v2.2.0-rc0~32^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18f29fc61ed88145a0664657c3cea9e9732ea5e8;p=thirdparty%2Fgit.git branch -d: simplify by using RESOLVE_REF_READING When "git branch -d" reads the branch it is about to delete, it used to avoid passing the RESOLVE_REF_READING ('treat missing ref as error') flag because a symref pointing to a nonexistent ref would show up as missing instead of as something that could be deleted. To check if a ref is actually missing, we then check - is it a symref? - if not, did it resolve to null_sha1? Now we pass RESOLVE_REF_NO_RECURSE and the correct information is returned for a symref even when it points to a missing ref. Simplify by relying on RESOLVE_REF_READING. No functional change intended. Signed-off-by: Ronnie Sahlberg Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- diff --git a/builtin/branch.c b/builtin/branch.c index 2ad2d0b44a..0c7aac0878 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -236,10 +236,11 @@ static int delete_branches(int argc, const char **argv, int force, int kinds, free(name); name = mkpathdup(fmt, bname.buf); - target = resolve_ref_unsafe(name, RESOLVE_REF_NO_RECURSE, + target = resolve_ref_unsafe(name, + RESOLVE_REF_READING + | RESOLVE_REF_NO_RECURSE, sha1, &flags); - if (!target || - (!(flags & REF_ISSYMREF) && is_null_sha1(sha1))) { + if (!target) { error(remote_branch ? _("remote branch '%s' not found.") : _("branch '%s' not found."), bname.buf);