Linus Torvalds <torvalds@xxxxxxxx> writes: > On Mon, 8 May 2006, sean wrote: >> >> One option, which I don't really like and comes with its own set of >> problems, would be to do something like: >> >> [branch1] >> streetname = "p4/BrAnCH" >> [branch2] >> streetname = "origin" > > You don't actually need that. > > We could easily do > > [branch] > name = "p4/BrAnCH" > url = git://git.kernel.org/... > pull = master > > ; > ; Repeating the "[branch]" section here isn't > ; needed, but doesn't hurt either, and is > ; more readable > ; > [branch] > name = "origin" > url = ... > pull = ... > > because the config file is always parsed linearly, and just > trigger on "branch.name", and keep that around when parsing > anything else. > > The problem with _that_ is that "git repo-config" can't add this kind of > setup sanely: it doesn't understand that kind of statefulness. Wait a minute... Statefulness is not the issue, I think. How would you tell your updated repo-config what to update and what to look up? - I want the url for branch whose name is "origin" - I want to fetch their "for-linus" branch when fetching from the branch whose name is "jgarzik" from now on. In these query and update, you _are_ naming the branch with name="xxx"; you just made "name" a special attribute. Now, how would that compare with: [branch.jgarzik] url = git://git.kernel.org/... fetch = for-linus or [branch."JGarzik"] url = git://git.kernel.org/... fetch = for-linus I would say if we are grouping things together, if we can give name to each group, _and_ if we are going to refer to the group with its name, we are better off making the groups into distinct sections _and_ make the syntax obvious that what name refers to the section. I think [branch.jgarzik] syntax is more obvious than your example where "name =" line is implicitly used as a keyword to differenciate multiple occurrences of [branch] sections. Having said that, perhaps you have something more elaborate in mind, e.g. repo-config --get branch.url where name = 'origin' repo-config --get branch.name where url like 'git://%' repo-config branch.url 'git://git.kernel.org/...' where name = foo ;-) ;-) ;-) ??? If that is what you are after, then I agree your syntax is more generic and suitable. But otherwise I fail to see its point. On a related topic, I have always been torn about the "for" convention. While I think it was a cute hack, it would break quite badly once we start doing anything complex. [branch] url = git://git.kernel.org/... for jgarzik fetch = for-linus for jgarzik proxy = none url = git://git.kernel.org/... for torvalds fetch = master for torvalds - : 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