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 <sahlberg@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
62a2d52514
commit
18f29fc61e
|
@ -236,10 +236,11 @@ static int delete_branches(int argc, const char **argv, int force, int kinds,
|
||||||
free(name);
|
free(name);
|
||||||
|
|
||||||
name = mkpathdup(fmt, bname.buf);
|
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);
|
sha1, &flags);
|
||||||
if (!target ||
|
if (!target) {
|
||||||
(!(flags & REF_ISSYMREF) && is_null_sha1(sha1))) {
|
|
||||||
error(remote_branch
|
error(remote_branch
|
||||||
? _("remote branch '%s' not found.")
|
? _("remote branch '%s' not found.")
|
||||||
: _("branch '%s' not found."), bname.buf);
|
: _("branch '%s' not found."), bname.buf);
|
||||||
|
|
Loading…
Reference in New Issue