On Thu, May 23, 2013 at 5:42 AM, Ramkumar Ramachandra <artagnon@xxxxxxxxx> wrote: > Junio C Hamano wrote: >> And that was done with extensivility your example implied in mind: >> you may later be allowed to push other branches as well to origin. >> That is why the refspec definition for 'origin' does not hardcode >> the name of the branch you are permitted to push there at this >> moment. The fact that hot-branch goes to origin is encapsulated in >> the branch.hot-branch.pushremote. The rule, under which the name of >> any branch that goes to the origin is renamed, is encapsulated in >> remote.origin.push refspec (the introduction of the new mode >> "push.default = single" is necessary to make this work). > > My problem with this entire scheme _is_ the magic push.default = > single. Currently, push.default only kicks in when no > remote.<name>.push refspec is specified (in other words, it is a > default value of remote.<name>.push for all remotes), and I don't > think we should change this. If the user wants to configure the push > refspec (either for rewriting, or for determining what to push), there > is exactly one thing to change: remote.<name>.push. So I can have: > > [remote "theodore"] > push = master > push = +pu > > This means that I will always push master without force and pu with > force, irrespective of the branch I'm on. > > [remote "origin"] > push = refs/heads/*:refs/heads/rr/* > > This means that I will always push all branches without force with > rewriting, irrespective of the branch I'm on. > > [remote "ram"] > push = HEAD:refs/heads/rr/%1 > > This means that I will always push the current branch without force, > with rewriting. > > [remote "felipe"] > # empty > > This means that remote."felipe".push falls back to the refspec > specified by push.default. > > Isn't branch.<name>.push is completely unnecessary? No, it's not; 'git push --set-downstream' is not going to configure that for the user. Nor will the user be able to see the downstream with 'git branch -vv', nor will the user be able to see the downstream with 'git rev-parse branch@{downstream}'. You keep ignoring those use-cases I already mentioned multiple times because they don't fit your idealistic model. -- Felipe Contreras -- 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