Commit c9f116f1 by Edward Thomson

Merge branch 'pr/5061'

parents 1e3a639d ab27c835
......@@ -194,10 +194,17 @@ int git_revwalk_push_range(git_revwalk *walk, const char *range)
if ((error = git_revparse(&revspec, walk->repo, range)))
return error;
if (!revspec.to) {
git_error_set(GIT_ERROR_INVALID, "invalid revspec: range not provided");
error = GIT_EINVALIDSPEC;
goto out;
}
if (revspec.flags & GIT_REVPARSE_MERGE_BASE) {
/* TODO: support "<commit>...<commit>" */
git_error_set(GIT_ERROR_INVALID, "symmetric differences not implemented in revwalk");
return GIT_EINVALIDSPEC;
error = GIT_EINVALIDSPEC;
goto out;
}
if ((error = push_commit(walk, git_object_id(revspec.from), 1, false)))
......
......@@ -400,6 +400,24 @@ void test_revwalk_basic__push_range(void)
cl_git_pass(test_walk_only(_walk, commit_sorting_segment, 2));
}
void test_revwalk_basic__push_range_merge_base(void)
{
revwalk_basic_setup_walk(NULL);
git_revwalk_reset(_walk);
git_revwalk_sorting(_walk, 0);
cl_git_fail_with(GIT_EINVALIDSPEC, git_revwalk_push_range(_walk, "HEAD...HEAD~2"));
}
void test_revwalk_basic__push_range_no_range(void)
{
revwalk_basic_setup_walk(NULL);
git_revwalk_reset(_walk);
git_revwalk_sorting(_walk, 0);
cl_git_fail_with(GIT_EINVALIDSPEC, git_revwalk_push_range(_walk, "HEAD"));
}
void test_revwalk_basic__push_mixed(void)
{
git_oid oid;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment