Merge branch 'jt/interpret-branch-name-fallback'
"git status" has trouble showing where it came from by interpreting reflog entries that recordcertain events, e.g. "checkout @{u}", and gives a hard/fatal error. Even though it inherently is impossible to give a correct answer because the reflog entries lose some information (e.g. "@{u}" does not record what branch the user was on hence which branch 'the upstream' needs to be computed, and even if the record were available, the relationship between branches may have changed), at least hide the error to allow "status" show its output. * jt/interpret-branch-name-fallback: wt-status: tolerate dangling marks refs: move dwim_ref() to header file sha1-name: replace unsigned int with option struct
This commit is contained in:
@ -651,7 +651,7 @@ static void setup_branch_path(struct branch_info *branch)
|
||||
* If this is a ref, resolve it; otherwise, look up the OID for our
|
||||
* expression. Failure here is okay.
|
||||
*/
|
||||
if (!dwim_ref(branch->name, strlen(branch->name), &branch->oid, &branch->refname))
|
||||
if (!dwim_ref(branch->name, strlen(branch->name), &branch->oid, &branch->refname, 0))
|
||||
repo_get_oid_committish(the_repository, branch->name, &branch->oid);
|
||||
|
||||
strbuf_branchname(&buf, branch->name, INTERPRET_BRANCH_LOCAL);
|
||||
@ -1345,7 +1345,7 @@ static void die_expecting_a_branch(const struct branch_info *branch_info)
|
||||
struct object_id oid;
|
||||
char *to_free;
|
||||
|
||||
if (dwim_ref(branch_info->name, strlen(branch_info->name), &oid, &to_free) == 1) {
|
||||
if (dwim_ref(branch_info->name, strlen(branch_info->name), &oid, &to_free, 0) == 1) {
|
||||
const char *ref = to_free;
|
||||
|
||||
if (skip_prefix(ref, "refs/tags/", &ref))
|
||||
|
Reference in New Issue
Block a user