On Fri, Mar 02, 2007 at 01:52:29AM -0800, Junio C Hamano wrote: > - (moderately serious) The code blindly trusts that > "refs/remotes/foo/bar" tracks "refs/heads/bar" from remote > named "foo", which is a bit disturbing. With the default > configuration git-clone and git-remote creates, it always is > the case, but I suspect you might want to at least verify > that assumption (the user can have different settings in the > config), if not figuring them out by reading the existing > configuration yourself. Sorry to come into this conversation a bit late, but I am catching up on git reading. I agree that this assumption seems a bit suspect; this is the exact sort of thing I was envisioning a 'mergeLocal' or similar config option for; it avoids the need to make the reverse mapping. In fact, the way I thought about it was that branching might set the branch.*.branched_from variable. Then any porcelain which wanted to have a sane default for various operations (merge, rebase, etc) could use their regular, user-specified config (e.g., merge checks branch.*.merge; if not set, it defaults to branch.*.branched_from; if not set, barf). Thus you are compatible with the config features we have now, but in the case where we would currently die, this gives another option. It is safer to remove this variable on branch deletion (I know some people raised concerns about automatically removing parts of the config file) because the user would never set 'branched_from'; they would set 'merge'. IOW, my point is that branching should write the information it _knows_ into the config: branch X was branched from branch Y. It should be up to the programs to _use_ that information in a reasonable way. As it is now, this patch makes the decision about how to use the information at the time of branching, which seems to be the source of a lot of objects. My 2 cents, -Peff - 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