summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2008-04-22 07:11:13 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2008-04-24 22:30:31 -0700
commit1ce89cc4bb18b0e66f7073562d6634f6a9841335 (patch)
tree13dce1f6404c0d9a759d29cc7902e0ea7b3915b9
parentpush: allow unqualified dest refspecs to DWIM (diff)
downloadtgif-1ce89cc4bb18b0e66f7073562d6634f6a9841335.tar.xz
remote: create fetch config lines with '+'
Since git-remote always uses remote tracking branches, it should be safe to always force updates of those branches. I.e., we should generate fetch = +refs/heads/*:refs/remotes/$remote/* instead of fetch = refs/heads/*:refs/remotes/$remote/* This was the behavior of the perl version, which seems to have been lost in the C rewrite. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-remote.c1
-rwxr-xr-xt/t5505-remote.sh10
2 files changed, 11 insertions, 0 deletions
diff --git a/builtin-remote.c b/builtin-remote.c
index 8fe31dbd9a..4149f3b3ce 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -105,6 +105,7 @@ static int add(int argc, const char **argv)
struct path_list_item *item = track.items + i;
strbuf_reset(&buf2);
+ strbuf_addch(&buf2, '+');
if (mirror)
strbuf_addf(&buf2, "refs/%s:refs/%s",
item->path, item->path);
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index af2d077792..48ff2d424d 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -77,6 +77,16 @@ test_expect_success 'add another remote' '
)
'
+test_expect_success 'remote forces tracking branches' '
+(
+ cd test &&
+ case `git config remote.second.fetch` in
+ +*) true ;;
+ *) false ;;
+ esac
+)
+'
+
test_expect_success 'remove remote' '
(
cd test &&