Re: [PATCH] branch.autosetupmerge: allow boolean values, or "all"
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jul 9, 2007, 11:28 UTC
- Message-ID
- <Pine.LNX.4.64.0707091025250.4248@racer.site>
- In-Reply-To
- <46919692.5020708@gnu.org>
Hi,
On Sun, 8 Jul 2007, Paolo Bonzini wrote:
Show 9 quoted lines
> [Paolo tried to hide the fact that it was Junio who wrote this:] > > > Having prepared the patch below, I do not think if the original patch > > even wanted to have 'all' semantics. The surrounding text only talks > > about "off a remote branch" and I strongly suspect that nobody wanted > > to do this for a local branch case at all. > > If I remember correctly, the problem was that you are not sure that > remote branches are in refs/remotes.
Then you code is incorrect.
Basically, you use a confusing set of four functions to do the following:
- read the config, and
- write the branch.<name>.{remote,merge} variablesTwo functions would have been sufficient, and easier to read. And as I fully expect with non-simple code, a bug was lurking. This time in set_branch_defaults():
you check if neither config_repo nor config_remote (which is a misnomer, as it does not contain a "remote", but a "remote branch") is set. But that happens when there was no information in the config, too!
Also you miss the case that there is ambiguous information:
[remote "hello"] url = git://blub/x.git fetch = refs/heads/master:refs/heads/origin
[remote "bello"] url = git://yaddayadda/x.git fetch = refs/heads/master:refs/heads/origin
See? Your code just uses "bello".
Will send out a fix shortly.
Ciao, Dscho