summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-05-30 00:50:39 +0200
committernulltoken <emeric.fermas@gmail.com>2012-06-04 23:47:09 +0200
commitd27bf6656158c6be1eca7e8c5e87b4d39958b18d (patch)
treedfac20d8f7be1b4feb1290db8265b967842d7250
parentd05e2c64dd93da7219c9ebca18c2f3b8478ca93a (diff)
downloadlibgit2-d27bf6656158c6be1eca7e8c5e87b4d39958b18d.tar.gz
remote: Make git_remote_add() generate a default refspec with a force update specifier
-rw-r--r--src/remote.c2
-rw-r--r--tests-clar/network/remotes.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/remote.c b/src/remote.c
index deb73508d..5993ad02b 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -494,7 +494,7 @@ int git_remote_add(git_remote **out, git_repository *repo, const char *name, con
{
git_buf buf = GIT_BUF_INIT;
- if (git_buf_printf(&buf, "refs/heads/*:refs/remotes/%s/*", name) < 0)
+ if (git_buf_printf(&buf, "+refs/heads/*:refs/remotes/%s/*", name) < 0)
return -1;
if (git_remote_new(out, repo, name, url, git_buf_cstr(&buf)) < 0)
diff --git a/tests-clar/network/remotes.c b/tests-clar/network/remotes.c
index b3a0265e6..3f631835c 100644
--- a/tests-clar/network/remotes.c
+++ b/tests-clar/network/remotes.c
@@ -160,6 +160,15 @@ void test_network_remotes__loading_a_missing_remote_returns_ENOTFOUND(void)
cl_assert_equal_i(GIT_ENOTFOUND, git_remote_load(&_remote, _repo, "just-left-few-minutes-ago"));
}
+/*
+ * $ git remote add addtest http://github.com/libgit2/libgit2
+ *
+ * $ cat .git/config
+ * [...]
+ * [remote "addtest"]
+ * url = http://github.com/libgit2/libgit2
+ * fetch = +refs/heads/*:refs/remotes/addtest/*
+ */
void test_network_remotes__add(void)
{
git_remote_free(_remote);
@@ -169,5 +178,6 @@ void test_network_remotes__add(void)
cl_git_pass(git_remote_load(&_remote, _repo, "addtest"));
_refspec = git_remote_fetchspec(_remote);
cl_assert(!strcmp(git_refspec_src(_refspec), "refs/heads/*"));
+ cl_assert(git_refspec_force(_refspec) == 1);
cl_assert(!strcmp(git_refspec_dst(_refspec), "refs/remotes/addtest/*"));
}