Jardel Weyrich <jweyr...@gmail.com> writes:

> I believe `remote set-url --add --push` has a bug. Performed tests
> with v1.8.0.1 and v1.8.1 (Mac OS X).
>
> Quoting the relevant part of the documentation:
>
>> set-url
>>     Changes URL remote points to. Sets first URL remote points to matching 
>> regex <oldurl> (first URL if no <oldurl> is given) to <newurl>. If <oldurl> 
>> doesn’t match any URL, error occurs and nothing is changed.
>>
>>     With --push, push URLs are manipulated instead of fetch URLs.
>>     With --add, instead of changing some URL, new URL is added.
>>     With --delete, instead of changing some URL, all URLs matching regex 
>> <url> are deleted. Trying to delete all non-push URLs is an error.
>
> Here are some steps to reproduce:
>
> 1. Show the remote URLs
>
> jweyrich@pharao:test_clone1 [* master]$ git remote -v
> origin  /Volumes/sandbox/test (fetch)
> origin  /Volumes/sandbox/test (push)
>
> 2. Add a new push URL for origin
>
> jweyrich@pharao:test_clone1 [* master]$ git remote set-url --add --push 
> origin \
>     /Volumes/sandbox/test_clone2
>
> 3. Check what happened
>
> jweyrich@pharao:test_clone1 [* master]$ git remote -v
> origin  /Volumes/sandbox/test (fetch)
> origin  /Volumes/sandbox/test_clone2 (push)

The original pushurl was replaced with the additional one, instead
of being left and the new one getting added.  That looks certainly
wrong.

However, the result of applying the attached patch (either to
v1.7.12 or v1.8.1) still passes the test and I do not think it is
doing anything differently from what you described above.

What do you get from

        git config -l | grep '^remote\.origin'

in steps 1. and 3. in your procedure?  This question is trying to
tell if your bug is in "git remote -v" or in "git remote set-url".

-- >8 --
>From 0f6cbc67db926e97707ae732b02e790b4604508e Mon Sep 17 00:00:00 2001
From: Junio C Hamano <gits...@pobox.com>
Date: Fri, 11 Jan 2013 23:04:16 -0800
Subject: [PATCH] t5505: adding one pushurl from jweyrich

Signed-off-by: Junio C Hamano <gits...@pobox.com>
---
 t/t5505-remote.sh | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index c03ffdd..b31c5bb 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -901,6 +901,25 @@ test_expect_success 'remote set-url --push --add aaa' '
        cmp expect actual
 '
 
+test_expect_success 'remote set-url --push --add' '
+       git config remote.jweyrich.url /Volumes/sandbox/test &&
+       git config remote.jweyrich.pushurl /Volumes/sandbox/test &&
+       git config remote.jweyrich.fetch "refs/heads/*:refs/remotes/jweyrich/*" 
&&
+
+       added=/Volumes/sandbox/test_clone2 &&
+       {
+               git config -l | grep "^remote\.jweyrich\." &&
+               echo "remote.jweyrich.pushurl=$added"
+       } | sort >expect &&
+
+       git remote set-url --add --push jweyrich "$added" &&
+       git config -l | grep "^remote\.jweyrich\." | sort >actual &&
+
+       test_cmp expect actual &&
+
+       git remote -v | grep "^jweyrich" # this is just for debugging
+'
+
 test_expect_success 'remote set-url --push bar aaa' '
        git remote set-url --push someremote bar aaa &&
        echo foo >expect &&
-- 
1.8.1.421.g6236851
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to