On Mon, Aug 2, 2010 at 15:37, martin f krafft <madduck@xxxxxxxxxxx> wrote: > Dear Gits, > > I expect .git/config to tae precedence over ~/.gitconfig, which in > turn gets favoured over /etc/gitconfig. This works fine, except for > the url.….insteadOf settings. > > Have a look at the following: > > % grep madduck: .git/config > url = madduck:pub/puppet/modules/git > > % grep -B1 nsteadOf /etc/gitconfig ~/.gitconfig > /etc/gitconfig-[url "git://git.madduck.net/madduck/"] > /etc/gitconfig: insteadOf = madduck: > -- > /home/madduck/.gitconfig-[url "ssh://git.madduck.net/madduck/"] > /home/madduck/.gitconfig: insteadOf = madduck: > /home/madduck/.gitconfig: pushInsteadOf = git://git.madduck.net/madduck/ > > % git push -v > Pushing to git://git.madduck.net/madduck/pub/puppet/modules/git > fatal: The remote end hung up unexpectedly > > There seem to be two problems: > > 1. the value from /etc/gitconfig seems to be preferred over the > one from ~/.gitconfig. I think this is due to the fact that the > syntax for URL substitution is a bit whack and the two keys > different, so the merge is actually a union-merge, and then the > result is probably just the first match (git:// sorts before > ssh://). Right, the git-config backend just merges on a key-value basis. It isn't smart. > Why was the syntax chosen backwards in this way? Why not have > > [urlsubst "madduck:"] > replaceWith = ssh://git.madduck.net/madduck/ > > or even better: > > [url_regsubst] > somefreelychosenname = s|madduck:|ssh://git.madduck.net/madduck/| I don't know, but it usually helps if you add the person who added the feature to the CC-list. -- 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