mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 17:57:25 +00:00
parent
b2b571ce0c
commit
5912d74c69
@ -795,6 +795,7 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec
|
|||||||
|
|
||||||
case '@':
|
case '@':
|
||||||
{
|
{
|
||||||
|
if (spec[pos+1] == '{') {
|
||||||
git_object *temp_object = NULL;
|
git_object *temp_object = NULL;
|
||||||
|
|
||||||
if ((error = extract_curly_braces_content(&buf, spec, &pos)) < 0)
|
if ((error = extract_curly_braces_content(&buf, spec, &pos)) < 0)
|
||||||
@ -809,6 +810,9 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec
|
|||||||
if (temp_object != NULL)
|
if (temp_object != NULL)
|
||||||
base_rev = temp_object;
|
base_rev = temp_object;
|
||||||
break;
|
break;
|
||||||
|
} else {
|
||||||
|
/* Fall through */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -20,4 +20,5 @@ void test_refs_isvalidname__wont_hopefully_choke_on_valid_formats(void)
|
|||||||
cl_assert_equal_i(true, git_reference_is_valid_name("HEAD"));
|
cl_assert_equal_i(true, git_reference_is_valid_name("HEAD"));
|
||||||
cl_assert_equal_i(true, git_reference_is_valid_name("ONE_LEVEL"));
|
cl_assert_equal_i(true, git_reference_is_valid_name("ONE_LEVEL"));
|
||||||
cl_assert_equal_i(true, git_reference_is_valid_name("refs/stash"));
|
cl_assert_equal_i(true, git_reference_is_valid_name("refs/stash"));
|
||||||
|
cl_assert_equal_i(true, git_reference_is_valid_name("refs/remotes/origin/bim_with_3d@11296"));
|
||||||
}
|
}
|
||||||
|
@ -451,3 +451,37 @@ void test_refs_revparse__a_too_short_objectid_returns_EAMBIGUOUS(void)
|
|||||||
|
|
||||||
cl_assert_equal_i(GIT_EAMBIGUOUS, result);
|
cl_assert_equal_i(GIT_EAMBIGUOUS, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_refs_revparse__issue_994(void)
|
||||||
|
{
|
||||||
|
git_repository *repo;
|
||||||
|
git_reference *head, *with_at;
|
||||||
|
git_object *target;
|
||||||
|
|
||||||
|
repo = cl_git_sandbox_init("testrepo.git");
|
||||||
|
|
||||||
|
cl_assert_equal_i(GIT_ENOTFOUND,
|
||||||
|
git_revparse_single(&target, repo, "origin/bim_with_3d@11296"));
|
||||||
|
|
||||||
|
cl_assert_equal_i(GIT_ENOTFOUND,
|
||||||
|
git_revparse_single(&target, repo, "refs/remotes/origin/bim_with_3d@11296"));
|
||||||
|
|
||||||
|
|
||||||
|
cl_git_pass(git_repository_head(&head, repo));
|
||||||
|
cl_git_pass(git_reference_create_oid(
|
||||||
|
&with_at,
|
||||||
|
repo,
|
||||||
|
"refs/remotes/origin/bim_with_3d@11296",
|
||||||
|
git_reference_oid(head),
|
||||||
|
0));
|
||||||
|
|
||||||
|
cl_git_pass(git_revparse_single(&target, repo, "origin/bim_with_3d@11296"));
|
||||||
|
git_object_free(target);
|
||||||
|
|
||||||
|
cl_git_pass(git_revparse_single(&target, repo, "refs/remotes/origin/bim_with_3d@11296"));
|
||||||
|
git_object_free(target);
|
||||||
|
|
||||||
|
git_reference_free(with_at);
|
||||||
|
git_reference_free(head);
|
||||||
|
cl_git_sandbox_cleanup();
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user