Re: [PATCH(TIC)] push: annoy all users by deprecating the default semantics
- From
Jeff King <peff@peff.net>
- Date
- Feb 19, 2008, 16:37 UTC
- Message-ID
- <20080219163743.GA31668@sigill.intra.peff.net>
- In-Reply-To
- <alpine.LSU.1.00.0802191610480.30505@racer.site>
On Tue, Feb 19, 2008 at 04:14:35PM +0000, Johannes Schindelin wrote:
> Subject: [PATCH(TIC)] push: annoy all users by deprecating the default
Heh. It is a good sign that git has made the patch-generation workflow so pleasant to use that we are willing to make patches for the sake of humor. :)
Show 6 quoted lines
> FWIW I would resist, just because that config option would change > the _semantics_ of a git program. > > Just think about the IRC channel. "How do I update only HEAD?" -- > "Just say 'git push'" -- "No, that updates nothing" -- "Well, > works here" -- "But not here!" ... "Can _nobody_ help me?"
Just say "git push origin HEAD"?
Show 19 quoted lines
> diff --git a/builtin-push.c b/builtin-push.c
> index c8cb63e..7bcb141 100644
> --- a/builtin-push.c
> +++ b/builtin-push.c
> @@ -134,6 +134,14 @@ int cmd_push(int argc, const char **argv, const char *prefix)
> flags |= TRANSPORT_PUSH_ALL;
> if (mirror)
> flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE);
> + if (!all && argc < 2)
> + warning("Pushing without branch names is deprecated.\n"
> + "Too many users just assumed what it should do\n"
> + "according to them, got burned, and blamed us,\n"
> + "the good git developers.\n\n"
> + "So everybody has to suffer now, and get used to\n"
> + "new semantics.\n\n"
> + "Thank you for your time.\n");
>
> if (argc > 0) {
> repo = argv[0];You forgot to add a "--matching" option in case people want to explicitly request the old behavior. ;P
Seriously, though, I think it is not just new users. It is that for some (many? most?) people, wanting to push just the HEAD is the _normal_ workflow. So they must remember to always say "git push origin HEAD", and if they ever forget, the side effects are non-trivial to clean up.
-Peff