git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 4/7] remote rename/remove: handle branch.<name>.pushRemote config values

From
Bert Wesarg <bert.wesarg@googlemail.com>
Date
Jan 25, 2020, 07:29 UTC
Message-ID
<055e52dd-9349-697c-277f-abc9ac8ae85e@googlemail.com>
In-Reply-To
<nycvar.QRO.7.76.6.2001250142560.46@tvgsbejvaqbjf.bet>
Dear Dscho,
On 25.01.20 01:46, Johannes Schindelin wrote:
Show 197 quoted lines
> Hi Bert,
> 
> On Fri, 24 Jan 2020, Bert Wesarg wrote:
> 
>> When renaming or removing a remote with
>>
>>      git remote rename X Y
>>      git remote remove X
>>
>> Git already renames/removes any config values from
>>
>>      branch.<name>.remote = X
>>
>> to
>>
>>      branch.<name>.remote = Y
>>
>> As branch.<name>.pushRemote also names a remote, it now also renames
>> or removes these config values from
>>
>>      branch.<name>.pushRemote = X
>>
>> to
>>
>>      branch.<name>.pushRemote = Y
>>
>> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>>
>> ---
> 
> This commit seems to cause a failure in t5505:
> https://dev.azure.com/gitgitgadget/git/_build/results?buildId=27833&view=ms.vss-test-web.build-test-results-tab
> 
> Here is the excerpt of the log:
> 
> -- snip --
> [...]
> expecting success of 5505.15 'show':
> 	(
> 		cd test &&
> 		git config --add remote.origin.fetch refs/heads/master:refs/heads/upstream &&
> 		git fetch &&
> 		git checkout -b ahead origin/master &&
> 		echo 1 >>file &&
> 		test_tick &&
> 		git commit -m update file &&
> 		git checkout master &&
> 		git branch --track octopus origin/master &&
> 		git branch --track rebase origin/master &&
> 		git branch -d -r origin/master &&
> 		git config --add remote.two.url ../two &&
> 		git config --add remote.two.pushurl ../three &&
> 		git config branch.rebase.rebase true &&
> 		git config branch.octopus.merge "topic-a topic-b topic-c" &&
> 		(
> 			cd ../one &&
> 			echo 1 >file &&
> 			test_tick &&
> 			git commit -m update file
> 		) &&
> 		git config --add remote.origin.push : &&
> 		git config --add remote.origin.push refs/heads/master:refs/heads/upstream &&
> 		git config --add remote.origin.push +refs/tags/lastbackup &&
> 		git config --add remote.two.push +refs/heads/ahead:refs/heads/master &&
> 		git config --add remote.two.push refs/heads/master:refs/heads/another &&
> 		git remote show origin two >output &&
> 		git branch -d rebase octopus &&
> 		test_i18ncmp expect output
> 	)
> 
> + cd test
> + git config --add remote.origin.fetch refs/heads/master:refs/heads/upstream
> + git fetch
>  From /home/virtualbox/git/t/trash directory.t5505-remote/one
>   * [new branch]      master     -> upstream
> + git checkout -b ahead origin/master
> Switched to a new branch 'ahead'
> Branch 'ahead' set up to track remote branch 'master' from 'origin'.
> + echo 1
> + test_tick
> + test -z
> + test_tick=1112911993
> + GIT_COMMITTER_DATE=1112911993 -0700
> + GIT_AUTHOR_DATE=1112911993 -0700
> + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> + git commit -m update file
> [ahead 847549e] update
>   Author: A U Thor <author@example.com>
>   1 file changed, 1 insertion(+)
> + git checkout master
> Switched to branch 'master'
> Your branch is up to date with 'origin/master'.
> + git branch --track octopus origin/master
> Branch 'octopus' set up to track remote branch 'master' from 'origin'.
> + git branch --track rebase origin/master
> Branch 'rebase' set up to track remote branch 'master' from 'origin'.
> + git branch -d -r origin/master
> Deleted remote-tracking branch origin/master (was 9d34b14).
> + git config --add remote.two.url ../two
> + git config --add remote.two.pushurl ../three
> + git config branch.rebase.rebase true
> + git config branch.octopus.merge topic-a topic-b topic-c
> + cd ../one
> + echo 1
> + test_tick
> + test -z set
> + test_tick=1112912053
> + GIT_COMMITTER_DATE=1112912053 -0700
> + GIT_AUTHOR_DATE=1112912053 -0700
> + export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
> + git commit -m update file
> [master 6329a3c] update
>   Author: A U Thor <author@example.com>
>   1 file changed, 1 insertion(+)
> + git config --add remote.origin.push :
> + git config --add remote.origin.push refs/heads/master:refs/heads/upstream
> + git config --add remote.origin.push +refs/tags/lastbackup
> + git config --add remote.two.push +refs/heads/ahead:refs/heads/master
> + git config --add remote.two.push refs/heads/master:refs/heads/another
> + git remote show origin two
> error: src refspec refs/tags/lastbackup does not match any
> + git branch -d rebase octopus
> Deleted branch rebase (was 9d34b14).
> Deleted branch octopus (was 9d34b14).
> + test_i18ncmp expect output
> + test_have_prereq C_LOCALE_OUTPUT
> + save_IFS=
> 
> + IFS=,
> + set -- C_LOCALE_OUTPUT
> + IFS=
> 
> + total_prereq=0
> + ok_prereq=0
> + missing_prereq=
> + negative_prereq=
> + total_prereq=1
> + satisfied_this_prereq=t
> + ok_prereq=1
> + test 1 = 1
> + test_cmp expect output
> + diff -u expect output
> --- expect	2020-01-25 00:44:41.496720000 +0000
> +++ output	2020-01-25 00:44:43.513861900 +0000
> @@ -5,13 +5,6 @@
>     Remote branches:
>       master new (next fetch will store in remotes/origin)
>       side   tracked
> -  Local branches configured for 'git pull':
> -    ahead    merges with remote master
> -    master   merges with remote master
> -    octopus  merges with remote topic-a
> -                and with remote topic-b
> -                and with remote topic-c
> -    rebase  rebases onto remote master
>     Local refs configured for 'git push':
>       master pushes to master   (local out of date)
>       master pushes to upstream (create)
> error: last command exited with $?=1
> not ok 15 - show
> #
> #		(
> #			cd test &&
> #			git config --add remote.origin.fetch refs/heads/master:refs/heads/upstream &&
> #			git fetch &&
> #			git checkout -b ahead origin/master &&
> #			echo 1 >>file &&
> #			test_tick &&
> #			git commit -m update file &&
> #			git checkout master &&
> #			git branch --track octopus origin/master &&
> #			git branch --track rebase origin/master &&
> #			git branch -d -r origin/master &&
> #			git config --add remote.two.url ../two &&
> #			git config --add remote.two.pushurl ../three &&
> #			git config branch.rebase.rebase true &&
> #			git config branch.octopus.merge "topic-a topic-b topic-c" &&
> #			(
> #				cd ../one &&
> #				echo 1 >file &&
> #				test_tick &&
> #				git commit -m update file
> #			) &&
> #			git config --add remote.origin.push : &&
> #			git config --add remote.origin.push refs/heads/master:refs/heads/upstream &&
> #			git config --add remote.origin.push +refs/tags/lastbackup &&
> #			git config --add remote.two.push +refs/heads/ahead:refs/heads/master &&
> #			git config --add remote.two.push refs/heads/master:refs/heads/another &&
> #			git remote show origin two >output &&
> #			git branch -d rebase octopus &&
> #			test_i18ncmp expect output
> #		)
> #
> -- snap --
> 
> Could you have a look to see whether the code or the test need to be
> adjusted?
please ensure that you have v4 of this patch. What you see was a bug in v3.
Thanks.
Bert
> 
> Thanks,
> Dscho
> 
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 8 of 14 in “remote rename/remove: improve handling of configuration values”
  1. 0/7 remote rename/remove: improve handling of configuration valuesBert Wesarg, Jan 24, 2020
  2. 2/7 remote: clean-up by returning early to avoid one indentationBert Wesarg, Jan 24, 2020
  3. 1/7 pull --rebase/remote rename: document and honor single-letter abbreviations rebase typesBert Wesarg, Jan 24, 2020
  4. 3/7 remote: clean-up config callbackBert Wesarg, Jan 24, 2020
  5. 5/7 config: make `scope_name` global as `config_scope_name`Bert Wesarg, Jan 24, 2020
  6. 4/7 remote rename/remove: handle branch.<name>.pushRemote config valuesBert Wesarg, Jan 24, 2020
  7. Johannes SchindelinJan 25, 2020
  8. Bert WesargJan 25, 2020
  9. Johannes SchindelinJan 26, 2020
  10. 7/7 remote rename/remove: gently handle remote.pushDefault configBert Wesarg, Jan 24, 2020
  11. 6/7 config: provide access to the current line numberBert Wesarg, Jan 24, 2020
  12. Junio C HamanoJan 24, 2020
  13. Matt RogersJan 25, 2020
  14. Bert WesargJan 27, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.