branch: don't fail listing branches if one of the commits wasn't found

When listing branches with ref lookups, if one of the known raw refs
doesn't point to a commit then "git branch" would return error(),
terminating the whole for_each_rawref() iteration and possibly hiding
any remaining refs.

Signed-off-by: Simo Melenius <simo.melenius@iki.fi>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Simo Melenius 2010-06-04 12:50:11 +03:00 committed by Junio C Hamano
parent 1603ade813
commit 0e9716e65e

View file

@ -301,7 +301,7 @@ static int append_ref(const char *refname, const unsigned char *sha1, int flags,
commit = lookup_commit_reference_gently(sha1, 1); commit = lookup_commit_reference_gently(sha1, 1);
if (!commit) { if (!commit) {
cb->ret = error("branch '%s' does not point at a commit", refname); cb->ret = error("branch '%s' does not point at a commit", refname);
return cb->ret; return 0;
} }
/* Filter with with_commit if specified */ /* Filter with with_commit if specified */
@ -539,6 +539,9 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru
free_ref_list(&ref_list); free_ref_list(&ref_list);
if (cb.ret)
error("some refs could not be read");
return cb.ret; return cb.ret;
} }