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

Re: [PATCH] Return non-zero status from pull if merge fails.

From
Junio C Hamano <junkio@cox.net>
Date
Nov 8, 2006, 05:36 UTC
Message-ID
<7vu01av6tb.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20061108051035.GA28498@spearce.org>
Shawn Pearce <spearce@spearce.org> writes:
Show 13 quoted lines
> Yes.  Without it:
>
>   $ git checkout -b 931233bc666b^
>   $ echo broken >builtin-pickaxe.c
>   $ git pull . next && echo good merge
>   Updating c2e525d..522da27
>   builtin-pickaxe.c: needs update
>   fatal: Entry 'builtin-pickaxe.c' not uptodate. Cannot merge.
>   good merge
>
> Say what?  There's no way that fast forward was good!  Granted this
> use case is horrible but that fast forward went very, very badly,
> but the caller now thinks it was good.

I think fast forward went Ok in that "git-ls-tree HEAD" gives the correct merge result from pulling next on top of 931233^ (or whatever). I am undecided if we want to keep what dropsave is supposed to remove in that case, but exiting with non-zero to indicate an error condition is needed.

> Hmm; apparently you are correct.  But that seems like magic shell
> voodoo to me.  I honestly didn't expect exit to behave like that.

Get used to it and learn the real shell programming from a traditionalist ;-).

	something-that-could-fail || exit
is a well established idiom.

But I do not mind the extra explicit non-zero exit status too much as long as you are consistent.

Previous: Shawn PearceNext: Shawn Pearce
Message 4 of 5 in “Return non-zero status from pull if merge fails.”
  1. Return non-zero status from pull if merge fails.Shawn O. Pearce, Nov 7, 2006
  2. Junio C HamanoNov 8, 2006
  3. Shawn PearceNov 8, 2006
  4. Junio C HamanoNov 8, 2006
  5. Shawn PearceNov 8, 2006

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.