Skip to content

Commit c5d8e30

Browse files
committed
branch: have git_branch_lookup accept GIT_BRANCH_ALL
1 parent 0a25141 commit c5d8e30

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/branch.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static int retrieve_branch_reference(
2222
git_reference **branch_reference_out,
2323
git_repository *repo,
2424
const char *branch_name,
25-
int is_remote)
25+
bool is_remote)
2626
{
2727
git_reference *branch = NULL;
2828
int error = 0;
@@ -334,9 +334,23 @@ int git_branch_lookup(
334334
const char *branch_name,
335335
git_branch_t branch_type)
336336
{
337+
int error = -1;
337338
assert(ref_out && repo && branch_name);
338339

339-
return retrieve_branch_reference(ref_out, repo, branch_name, branch_type == GIT_BRANCH_REMOTE);
340+
switch (branch_type) {
341+
case GIT_BRANCH_LOCAL:
342+
case GIT_BRANCH_REMOTE:
343+
error = retrieve_branch_reference(ref_out, repo, branch_name, branch_type == GIT_BRANCH_REMOTE);
344+
break;
345+
case GIT_BRANCH_ALL:
346+
error = retrieve_branch_reference(ref_out, repo, branch_name, false);
347+
if (error == GIT_ENOTFOUND)
348+
error = retrieve_branch_reference(ref_out, repo, branch_name, true);
349+
break;
350+
default:
351+
assert(false);
352+
}
353+
return error;
340354
}
341355

342356
int git_branch_name(

0 commit comments

Comments
 (0)