diff options
author | Jeff King <peff@peff.net> | 2015-05-21 20:46:43 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-05-22 09:30:51 -0700 |
commit | 1ca41a19323d455cf0028001677f3adfae0d4cc4 (patch) | |
tree | 3db166956f285906c4706fa86e9aaa59682ebfd4 /wt-status.c | |
parent | remote.c: report specific errors from branch_get_upstream (diff) | |
download | tgif-1ca41a19323d455cf0028001677f3adfae0d4cc4.tar.xz |
remote.c: untangle error logic in branch_get_upstream
The error-diagnosis logic in branch_get_upstream was copied
straight from sha1_name.c in the previous commit. However,
because we check all error cases and upfront and then later
diagnose them, the logic is a bit tangled. In particular:
- if branch->merge[0] is NULL, we may end up dereferencing
it for an error message (in practice, it should never be
NULL, so this is probably not a triggerable bug).
- We may enter the code path because branch->merge[0]->dst
is NULL, but we then start our error diagnosis by
checking whether our local branch exists. But that is
only relevant to diagnosing missing merge config, not a
missing tracking ref; our diagnosis may hide the real
problem.
Instead, let's just use a sequence of "if" blocks to check
for each error type, diagnose it, and return NULL.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'wt-status.c')
0 files changed, 0 insertions, 0 deletions