Subject: Re: push.default???

From: Paolo Bonzini <[email-masked]>
Date: Tue, 23 Jun 2009 14:59:10 +0200

Finn Arne Gangstad wrote:
> On Mon, Jun 22, 2009 at 12:02:33PM +0200, Paolo Bonzini wrote:
>> Hi all, I just upgraded to git 1.6.3 and found this new little gem  
>> called push.default...
>> [...]
> 
> You should have been here when we discussed this! :)

Yes, mea culpa.  But I would have expected a *lot* more discussion from 
what I remembered about the git list and community. :-)

>> 1) Also in 1.6.3, invent a special refspec for "tracking", something  
>> like "HEAD>" (of course this is not a special case; "refs/heads/*>"  
>> would also work, yadda yadda)
> 
> Yes, this is a weakness righ now - the only way to get tracking
> semantics is to set push.default. I could not find a very good way of
> specifying this. We currently have the magic refspecs : and
> HEAD. Adding a ">" to "HEAD>" would be annoying I think, since it has
> to be quoted in the shell.

Yes, > has the disadvantage of quoting.

> Maybe we can use ":" as an escape, it is not allowed in refspecs.
> Something like "::tracking" (and we cold also have "::matching",
> "::current" and so on for completeness)

But that would lose the possibility to use wildcards.

Before going on, can you explain your use case for --push=tracking (in a 
case where --push=current wouldn't do the same)?

>> 4) in 1.6.4 or 1.7.0, make "git push" fail outright if there is no push  
>> line, with text suggesting [...]
> 
> Hopefully we can get to this stage, that a unconfigured "git push"
> gives a small message, indicating how to configure it, and not push
> anything. Most "oldtimers" should have configured this already, so it
> should not break many setups.

Agreed.  Possibly with a "git remote" command to add a push refspec.

Paolo