mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-30 22:24:56 +00:00
Merge pull request #1551 from nvloff/set_upstream_local_branch
fix git_branch_set_upstream for local branches
This commit is contained in:
commit
1c92f1090e
@ -521,7 +521,8 @@ int git_branch_set_upstream(git_reference *branch, const char *upstream_name)
|
|||||||
goto on_error;
|
goto on_error;
|
||||||
|
|
||||||
if (local) {
|
if (local) {
|
||||||
if (git_buf_puts(&value, git_reference_name(branch)) < 0)
|
git_buf_clear(&value);
|
||||||
|
if (git_buf_puts(&value, git_reference_name(upstream)) < 0)
|
||||||
goto on_error;
|
goto on_error;
|
||||||
} else {
|
} else {
|
||||||
/* Get the remoe-tracking branch's refname in its repo */
|
/* Get the remoe-tracking branch's refname in its repo */
|
||||||
|
@ -103,6 +103,7 @@ void test_refs_branches_upstream__set_unset_upstream(void)
|
|||||||
|
|
||||||
repository = cl_git_sandbox_init("testrepo.git");
|
repository = cl_git_sandbox_init("testrepo.git");
|
||||||
|
|
||||||
|
/* remote */
|
||||||
cl_git_pass(git_reference_lookup(&branch, repository, "refs/heads/test"));
|
cl_git_pass(git_reference_lookup(&branch, repository, "refs/heads/test"));
|
||||||
cl_git_pass(git_branch_set_upstream(branch, "test/master"));
|
cl_git_pass(git_branch_set_upstream(branch, "test/master"));
|
||||||
|
|
||||||
@ -112,6 +113,17 @@ void test_refs_branches_upstream__set_unset_upstream(void)
|
|||||||
cl_git_pass(git_config_get_string(&value, config, "branch.test.merge"));
|
cl_git_pass(git_config_get_string(&value, config, "branch.test.merge"));
|
||||||
cl_assert_equal_s(value, "refs/heads/master");
|
cl_assert_equal_s(value, "refs/heads/master");
|
||||||
|
|
||||||
|
/* local */
|
||||||
|
cl_git_pass(git_reference_lookup(&branch, repository, "refs/heads/test"));
|
||||||
|
cl_git_pass(git_branch_set_upstream(branch, "master"));
|
||||||
|
|
||||||
|
cl_git_pass(git_repository_config(&config, repository));
|
||||||
|
cl_git_pass(git_config_get_string(&value, config, "branch.test.remote"));
|
||||||
|
cl_assert_equal_s(value, ".");
|
||||||
|
cl_git_pass(git_config_get_string(&value, config, "branch.test.merge"));
|
||||||
|
cl_assert_equal_s(value, "refs/heads/master");
|
||||||
|
|
||||||
|
/* unset */
|
||||||
cl_git_pass(git_branch_set_upstream(branch, NULL));
|
cl_git_pass(git_branch_set_upstream(branch, NULL));
|
||||||
cl_git_fail_with(git_config_get_string(&value, config, "branch.test.merge"), GIT_ENOTFOUND);
|
cl_git_fail_with(git_config_get_string(&value, config, "branch.test.merge"), GIT_ENOTFOUND);
|
||||||
cl_git_fail_with(git_config_get_string(&value, config, "branch.test.remote"), GIT_ENOTFOUND);
|
cl_git_fail_with(git_config_get_string(&value, config, "branch.test.remote"), GIT_ENOTFOUND);
|
||||||
|
Loading…
Reference in New Issue
Block a user