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

Re: [PATCH] When renaming config sections delete conflicting sections

From
Shawn O. Pearce <spearce@spearce.org>
Date
Oct 17, 2007, 00:55 UTC
Message-ID
<20071017005517.GJ13801@spearce.org>
In-Reply-To
<20071017003418.GA11013@diku.dk>
Jonas Fonseca <fonseca@diku.dk> wrote:
Show 5 quoted lines
> The old behavior of keeping config sections matching the new name caused
> problems leading to warnings being emitted by git-remote when renaming
> branches where information about tracked remote branches differed. To
> fix this any config sections that will conflict with the new name are
> removed from the config file. Update test to check for this.
...
Show 5 quoted lines
>  This command sequence was causing problems for me:
> 
> 	git checkout -b test madcoder/next
> 	git checkout -b test2 spearce/next
> 	git branch -M test

Ouch. But this may cause the user to lose what they might consider important settings relative to the old section named branch.test.

I think in the case you mention above where you are doing a `branch -M` the user really does want the basic branch properties to be forced over (branch.$name.remote, branch.$name.merge) but they probably do not want other branch properties to be removed or deleted. Or maybe they do.

Its really hard to second guess the user's intent here. I think its too broad to whack an entire section when renaming. For example today lets say I do:

	cat >.git/config <<EOF
	[remote "many"]
		url = blah
		fetch = refs/heads/master
		fetch = refs/heads/next
	EOF
	$ git config remote.many.fetch refs/heads/pu
	Warning: remote.many.fetch has multiple values
	cat .git/config
	[remote "many"]
		url = blah
		fetch = refs/heads/master
		fetch = refs/heads/next

So we don't blindly replace multi-valued keys just because the user asked us to. I don't really see a section as being that much different to warrant a potentially lossy behavior by default.

-- 
Shawn.
Previous: Jonas FonsecaNext: Jonas Fonseca
Message 2 of 3 in “When renaming config sections delete conflicting sections”
  1. When renaming config sections delete conflicting sectionsJonas Fonseca, Oct 17, 2007
  2. Shawn O. PearceOct 17, 2007
  3. Jonas FonsecaOct 17, 2007

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.