On Mon, Jan 13, 2014 at 04:52:52PM +0530, Ramkumar Ramachandra wrote: > Not sure I understand what the problem is. Let's say we have two > branches: "master", and "side" with remote.pushdefault = ram, > branch.*.remote = origin, and branch.side.pushremote = peff. Now, when > I query master's pushremote, I get "ram" and when I query side's > pushremote, I get "peff"; all the logic for falling-back from > branch.*.pushremote to remote.pushdefault to branch.*.remote is in > branch_get(), so I need to do nothing extra on the caller-side. From > the caller's perspective, why does it matter if the pushremote of a > particular branch is due to branch.*.pushremote or remote.pushdefault? Imagine your HEAD is at "side". What should "master@{publish}" produce? I would argue "ram/master". Where does "ram" come from in your code? It does not matter for actually pushing, because to do a non-default push, you must always specify a remote. But "@{publish}" will ask the question "even if I am on 'side' now, what would happen if I were to default-push on 'master'?". -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