Skip to content
Browse files

revwalk: return GIT_EREVWALKER earlier if no references were pushed

In the case that walk->one is NULL, we know that we have no positive
references, so we already know that the revwalk is over.
  • Loading branch information...
1 parent 05e0ab0 commit c33f54b2efaee0af6dee20e2adb640e766fad01a @carlosmn committed
Showing with 8 additions and 1 deletion.
  1. +8 −1 src/revwalk.c
View
9 src/revwalk.c
@@ -697,6 +697,13 @@ static int prepare_walk(git_revwalk *walk)
commit_object *next, *two;
commit_list *bases = NULL;
+ /*
+ * If walk->one is NULL, there were no positive references,
+ * so we know that the walk is already over.
+ */
+ if (walk->one == NULL)
+ return GIT_EREVWALKOVER;
+
/* first figure out what the merge bases are */
if (merge_bases_many(&bases, walk, walk->one, &walk->twos) < 0)
return -1;
@@ -849,7 +856,7 @@ int git_revwalk_next(git_oid *oid, git_revwalk *walk)
if (!walk->walking) {
if ((error = prepare_walk(walk)) < 0)
- return -1;
+ return error;
}
error = walk->get_next(&next, walk);

0 comments on commit c33f54b

Please sign in to comment.
Something went wrong with that request. Please try again.