git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Herland <johan@herland.net>
To: git@vger.kernel.org
Cc: Johannes Sixt <j.sixt@viscovery.net>,
	Scott Chacon <schacon@gmail.com>,
	sylvain@abstraction.fr, howard@e-learndesign.co.uk
Subject: Re: How to ignore changes on remote
Date: Tue, 23 Mar 2010 18:20:51 +0100	[thread overview]
Message-ID: <201003231820.51618.johan@herland.net> (raw)
In-Reply-To: <4BA8EA6A.4030607@viscovery.net>

On Tuesday 23 March 2010, Johannes Sixt wrote:
> Am 3/23/2010 17:05, schrieb Scott Chacon:
> > Why would we teach someone to do that instead of just recommending
> > the far less obscure 'git push -f'?  A leading '+' on the refspec
> > is ridiculously confusing compared to "just tell it to force the
> > push with -f".  Am I forgetting something?
>
> -f is dangerous. I was once bitten badly by a hastily typed
>
>    git push -f repo
>
> that pushed two branches instead of only one: One needed an urgent
> update (that was the good one), but it also pushed the other one,
> which was not yet prepared for publication.

IMHO the main problem in this case is NOT with the -f option, but rather 
that 'git push' defaults to pushing all "matching" branches. I'd much 
rather have push.default default to the much safer "tracking", which 
pushes at most one branch. But changing default behaviour is hard to do 
without annoying old-timers.

I'm rolling out Git at my $DAYJOB to a few hundred developers, and I 
instruct them to

	git config --global push.default tracking

immediately after installing Git. Which sucks, but is the only sane 
thing I can do to prevent this problem from haunting us.

> By teaching the +refspec form, you force the user to be careful which
> branch is rewound. Yes, you can still say +refs/heads/*, but if you
> do that, you are much more explicit than with "push -f repo", where
> the affected branches are hidden in the config file.

IME refspecs are not easily grasped by Git newbies, and the longer they 
can get by without having to learn them, the happier they'll be with 
Git. IMHO, refspecs are really cool and powerful, but you shouldn't 
have to learn them in order to do day-to-day development.


...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

  reply	other threads:[~2010-03-23 17:21 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-23 13:54 How to ignore changes on remote Howard Miller
2010-03-23 14:07 ` Sylvain Rabot
2010-03-23 14:13   ` Howard Miller
2010-03-23 14:21     ` Alexander Iljin
2010-03-23 14:22     ` Santi Béjar
2010-03-23 14:24       ` Howard Miller
2010-03-23 14:25     ` Sylvain Rabot
2010-03-23 16:05       ` Scott Chacon
2010-03-23 16:13         ` Howard Miller
2010-03-23 16:20         ` Johannes Sixt
2010-03-23 17:20           ` Johan Herland [this message]
2010-03-23 17:47             ` Jakub Narebski
2010-03-23 18:02               ` Johan Herland
2010-03-23 16:44         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201003231820.51618.johan@herland.net \
    --to=johan@herland.net \
    --cc=git@vger.kernel.org \
    --cc=howard@e-learndesign.co.uk \
    --cc=j.sixt@viscovery.net \
    --cc=schacon@gmail.com \
    --cc=sylvain@abstraction.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).