diff options
author | Vicent Marti <vicent@github.com> | 2014-06-06 13:37:22 +0200 |
---|---|---|
committer | Vicent Marti <vicent@github.com> | 2014-06-06 13:37:22 +0200 |
commit | 716e20b47eb82ebd94588fe6c950e661b6fe4f15 (patch) | |
tree | 37b494ecbe435c1c047871eacf31dbc694626880 /tests | |
parent | c073184e62bff31953691ec25f5384aa13fc2950 (diff) | |
parent | a52ab4b82a06f3a4e6065ecfa1b27917b4ba216b (diff) | |
download | libgit2-716e20b47eb82ebd94588fe6c950e661b6fe4f15.tar.gz |
Merge pull request #2404 from libgit2/cmn/remote-rename-fixes
Remote rename fixes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/network/remote/rename.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/network/remote/rename.c b/tests/network/remote/rename.c index 4d8628425..b7ec44726 100644 --- a/tests/network/remote/rename.c +++ b/tests/network/remote/rename.c @@ -172,3 +172,33 @@ void test_network_remote_rename__cannot_rename_an_inmemory_remote(void) git_remote_free(remote); } + +void test_network_remote_rename__overwrite_ref_in_target(void) +{ + git_oid id; + char idstr[GIT_OID_HEXSZ + 1] = {0}; + git_remote *remote; + git_reference *ref; + git_branch_t btype; + git_branch_iterator *iter; + + cl_git_pass(git_oid_fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750")); + cl_git_pass(git_reference_create(&ref, _repo, "refs/remotes/renamed/master", &id, 1, NULL, NULL)); + git_reference_free(ref); + + cl_git_pass(git_remote_load(&remote, _repo, "test")); + cl_git_pass(git_remote_rename(remote, "renamed", dont_call_me_cb, NULL)); + git_remote_free(remote); + + + /* make sure there's only one remote-tracking branch */ + cl_git_pass(git_branch_iterator_new(&iter, _repo, GIT_BRANCH_REMOTE)); + cl_git_pass(git_branch_next(&ref, &btype, iter)); + cl_assert_equal_s("refs/remotes/renamed/master", git_reference_name(ref)); + git_oid_fmt(idstr, git_reference_target(ref)); + cl_assert_equal_s("be3563ae3f795b2b4353bcce3a527ad0a4f7f644", idstr); + git_reference_free(ref); + + cl_git_fail_with(GIT_ITEROVER, git_branch_next(&ref, &btype, iter)); + git_branch_iterator_free(iter); +} |