From: Jakub Narebski Date: Fri, 06 Mar 2009 15:27:35 GMT Subject: Re: [RFC PATCH] git push: Push nothing if no refspecs are given or configured Message-ID: In-Reply-To: <43d8ce650903060426y776474fi10acc5495b88fa7@mail.gmail.com> John Tapsell writes: > 2009/3/6 Finn Arne Gangstad : >> On Fri, Mar 06, 2009 at 02:32:53AM -0800, Junio C Hamano wrote: >>> Johannes Schindelin writes: >>> >>>> On Thu, 5 Mar 2009, Sverre Rabbelier wrote: >>>> >>>>> On Thu, Mar 5, 2009 at 23:25, Markus Heidelberg >>>>> wrote: >>>>>> Oh, I confused "config option" with "command line argument"... >>>>> >>>>> Right, I'd like to be able to do: >>>>> $ git config push.iamnotretarded true >>>>> $ git push >>>> >>>> LOL!  Sverre, you have a way to crack me up... >>> >>> I found it amusing, too. >>> >>> It may have some correlation with how well organized your work habit is, >>> but I do not think it has much correlation with being retarded.  It is >>> more about "'matching refs' is the perfect default for _my_ use pattern, >>> don't mess with it, please". >> >> So here is my current WIP suggestion for a new "push.default" >> variable, I am not sure if a single entry can express all useful >> choices, or if it is a good idea to introduce more default choices >> other than "nothing" (with the goal of making it the default in a >> later release). >> >> I think all the values here make sense as a --option to git push >> though (except --nothing...) >> >> Suggested new entry in config.txt: >> >> push.default:: >>        Defines the action git push should take if no refspec is given >>        on the command line, no refspec is configured in the branch, and >>        no refspec is implied by any of the options given on the command >>        line. >> + >>        The term `current remote` means the remote configured for the current >>        branch, or `origin` if no remote is set. `origin` is also used if >>        you are not on a branch at all. >> + >> * `nothing` do not push anything >> * `matching` push all matching branches to the current remote. >>  All branches having the same name in both ends are considered to be >>  matching. This is the default value. >> * `same-remote` push all matching branches that are configured to use >>  the current remote. Branches with no remote configuration are not pushed. >> * `tracked` push all branches that are tracking a branch on the current >>  remote to their counterpart. > > How about 'current', to simply push the current the branch. It could > even prompt if it's not tracked yet. Note that if you have configuration for , you can simply add "remote..push = HEAD" for pushing current branch only, and "remote..push = :" for current matching behavior. Perhaps "remote..push = " works for push nothing? > Most (all?) other revision control systems have this 'current' > behaviour by default. -- Jakub Narebski Poland ShadeHawk on #git