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

Re: Re* git diff/log --check exitcode and PAGER environment variable

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 8, 2008, 20:40 UTC
Message-ID
<7vsktfb5r1.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.DEB.1.00.0808081315060.9611@pacific.mpi-cbg.de.mpi-cbg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 28 quoted lines
> On Fri, 8 Aug 2008, "Peter Valdemar Mørch (Lists)" wrote:
>
>> I don't want to be a troll... But in my original post, I write that git 
>> log exits with 0 even when there are --check failures *and* --no-pager 
>> is used.
>
> You seem to care enough.  That is good.  Because I will give you a few 
> pointers to help yourself, and you can in return help us by submitting a 
> patch:
>
> - the code to be changed lives in log-tree.c.  Look for calls to the 
>   function log_tree_diff_flush().  You need to check the exit status
>   after that (needs to be done only when DIFF_OPT_TST(opt->diffopt, 
>   EXIT_WITH_STATUS).
>
> - you can get at the exit status with the call 
>   diff_result_code(opt->diffopt, 0) (see the implementation in diff.c to 
>   find out what the 0 means, and why it is correct).
>
> - you need to accumulate the exit status (plural, with a long u) over all 
>   calls to log_tree_diff(), best thing would be to add a member to the
>   log_info struct.
>
> - you need to test rev->loginfo->exit_code in the end, and return failure 
>   if it is non-zero.  I think the place is in cmd_log_walk().
>
> Bon chance,
> Dscho
Dscho, thanks for a nice writeup.
And sorry, Peter, for being dense earlier.

I somehow thought you were talking about "diff" but you are right; "log" has been solely used for "_view_ log with various format of diffs" and nobody wanted it to pay attention to individual diff's exit status so far (I am not saying "everybody wanted it not to pay attention to it" -- it was just nobody felt the need for log to report the diff exit status).

Previous: Johannes SchindelinNext: Peter Valdemar Mørch
Message 7 of 18 in “git diff/log --check exitcode and PAGER environment variable”
  1. Peter Valdemar Mørch (Lists)Aug 8, 2008
  2. Junio C HamanoAug 8, 2008
  3. Peter Valdemar Mørch (Lists)Aug 8, 2008
  4. Re* git diff/log --check exitcode and PAGER environment variableJunio C Hamano, Aug 8, 2008
  5. Peter Valdemar Mørch (Lists)Aug 8, 2008
  6. Johannes SchindelinAug 8, 2008
  7. Junio C HamanoAug 8, 2008
  8. Teach git log --check to return an appropriate error codePeter Valdemar Mørch, Aug 9, 2008
  9. Johannes SchindelinAug 9, 2008
  10. Junio C HamanoAug 9, 2008
  11. Peter Valdemar Mørch (Lists)Aug 10, 2008
  12. Junio C HamanoAug 10, 2008
  13. Junio C HamanoAug 9, 2008
  14. PATCH v2 0/2 Trying patch againPeter Valdemar Mørch, Aug 11, 2008
  15. 1/2 Teach git log --check to return an appropriate exit codePeter Valdemar Mørch, Aug 11, 2008
  16. 2/2 Teach git log --exit-code to return an appropriate exit codePeter Valdemar Mørch, Aug 11, 2008
  17. Jeff KingAug 8, 2008
  18. Jeff KingAug 8, 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.