Jardel Weyrich <jweyrich@xxxxxxxxx> 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 <gitster@xxxxxxxxx> Date: Fri, 11 Jan 2013 23:04:16 -0800 Subject: [PATCH] t5505: adding one pushurl from jweyrich Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html