git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH(TIC)] push: annoy all users by deprecating the default semantics

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Feb 19, 2008, 16:14 UTC
Message-ID
<alpine.LSU.1.00.0802191610480.30505@racer.site>
In-Reply-To
<20080219152549.GC24499@sigill.intra.peff.net>
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
	On Tue, 19 Feb 2008, Jeff King wrote:
	> On Tue, Feb 19, 2008 at 10:18:09AM -0500, Jay Soffian wrote:
	> > > > It seems like the default should be to push just the 
	> > > > current branch ... this would correspond to what a user of 
	> > > > git pull expects (even though the converse of git-push is 
	> > > > really git-fetch, for a new user, that might not be 
	> > > > entirely clear).
	> > >
	> > > I agree with you, but others do not
	> > 
	> > Sounds like an opportunity for a config option.
	> 
	> Again I agree, though I think there is some resistance to that 
	> (see the thread I mentioned). Junio's opinion seems to be "why 
	> can't they just use 'git push <remote> HEAD'?" (and he suggested 
	> a 'git push HEAD' shorthand syntax, as well).
	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?"
	Having inconsistent semantics is wrong, wrong, wrong.
	> But then, nobody has put forth a patch, so I think if you wanted
	> to argue it, the best way would be to do so (though I think it 
	> would be rejected, it would give those who wanted to try it 
	> something to play with).
	This is a tongue-in-cheek patch.  Just so that nobody can say that
	there were no patches.
 builtin-push.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
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];
Previous: Johannes SchindelinNext: Jason Garber
Message 8 of 19 in “git push [rejected] question”
  1. Jason GarberFeb 18, 2008
  2. Jeff KingFeb 19, 2008
  3. Jay SoffianFeb 19, 2008
  4. Jeff KingFeb 19, 2008
  5. Jay SoffianFeb 19, 2008
  6. Jeff KingFeb 19, 2008
  7. Johannes SchindelinFeb 19, 2008
  8. push: annoy all users by deprecating the default semanticsJohannes Schindelin, Feb 19, 2008
  9. Jason GarberFeb 19, 2008
  10. Johannes SchindelinFeb 19, 2008
  11. Jeff KingFeb 19, 2008
  12. Johannes SchindelinFeb 19, 2008
  13. Jeff KingFeb 19, 2008
  14. Govind SalinasFeb 20, 2008
  15. Junio C HamanoFeb 20, 2008
  16. Govind SalinasFeb 20, 2008
  17. Junio C HamanoFeb 20, 2008
  18. Jay SoffianFeb 19, 2008
  19. Jeff KingFeb 19, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.