diff options
author | Karthik Nayak <karthik.188@gmail.com> | 2015-09-24 23:39:08 +0530 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-09-25 08:52:16 -0700 |
commit | ca41799068e101e908544d4e2000a747b1389ebc (patch) | |
tree | 656d51f776f249c54895fb25412b193ec022f9a0 /builtin/branch.c | |
parent | branch: move 'current' check down to the presentation layer (diff) | |
download | tgif-ca41799068e101e908544d4e2000a747b1389ebc.tar.xz |
branch: drop non-commit error reporting
Remove the error "branch '%s' does not point at a commit" in
append_ref(), which reports branch refs which do not point to
commits. Also remove the error "some refs could not be read" in
print_ref_list() which is triggered as a consequence of the first
error.
The purpose of these codepaths is not to diagnose and report a
repository corruption. If we care about such a corruption, we
should report it from fsck instead, which we already do.
This also helps in a smooth port of branch.c to use ref-filter APIs
over the following patches. On the other hand, ref-filter ignores refs
which do not point at commits silently.
Based-on-patch-by: Jeff King <peff@peff.net>
Helped-by: Junio C Hamano <gitster@pobox.com>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/branch.c')
-rw-r--r-- | builtin/branch.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/builtin/branch.c b/builtin/branch.c index 1a664ed315..ebc37423ab 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -313,7 +313,6 @@ static char *resolve_symref(const char *src, const char *prefix) struct append_ref_cb { struct ref_list *ref_list; const char **pattern; - int ret; }; static int match_patterns(const char **pattern, const char *refname) @@ -370,10 +369,8 @@ static int append_ref(const char *refname, const struct object_id *oid, int flag commit = NULL; if (ref_list->verbose || ref_list->with_commit || merge_filter != NO_FILTER) { commit = lookup_commit_reference_gently(oid->hash, 1); - if (!commit) { - cb->ret = error(_("branch '%s' does not point at a commit"), refname); + if (!commit) return 0; - } /* Filter with with_commit if specified */ if (!is_descendant_of(commit, ref_list->with_commit)) @@ -617,7 +614,7 @@ static int calc_maxwidth(struct ref_list *refs, int remote_bonus) return max; } -static int print_ref_list(int kinds, int detached, int verbose, int abbrev, struct commit_list *with_commit, const char **pattern) +static void print_ref_list(int kinds, int detached, int verbose, int abbrev, struct commit_list *with_commit, const char **pattern) { int i; struct append_ref_cb cb; @@ -642,7 +639,6 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru init_revisions(&ref_list.revs, NULL); cb.ref_list = &ref_list; cb.pattern = pattern; - cb.ret = 0; /* * First we obtain all regular branch refs and if the HEAD is * detached then we insert that ref to the end of the ref_fist @@ -693,11 +689,6 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru abbrev, detached, remote_prefix); free_ref_list(&ref_list); - - if (cb.ret) - error(_("some refs could not be read")); - - return cb.ret; } static void rename_branch(const char *oldname, const char *newname, int force) @@ -913,15 +904,14 @@ int cmd_branch(int argc, const char **argv, const char *prefix) die(_("branch name required")); return delete_branches(argc, argv, delete > 1, kinds, quiet); } else if (list) { - int ret; /* git branch --local also shows HEAD when it is detached */ if (kinds & REF_LOCAL_BRANCH) kinds |= REF_DETACHED_HEAD; - ret = print_ref_list(kinds, detached, verbose, abbrev, + print_ref_list(kinds, detached, verbose, abbrev, with_commit, argv); print_columns(&output, colopts, NULL); string_list_clear(&output, 0); - return ret; + return 0; } else if (edit_description) { const char *branch_name; |