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

[PATCH v2 2/2] Teach git log --exit-code to return an appropriate exit code

From
PMPeter Valdemar Mørch <4ux6as402@sneakemail.com>
Date
Aug 11, 2008, 06:46 UTC
Message-ID
<1218437185-6178-3-git-send-email-4ux6as402@sneakemail.com>
In-Reply-To
<1218437185-6178-2-git-send-email-4ux6as402@sneakemail.com>
From: Peter Valdemar Mørch <peter@morch.com>
Signed-off-by: Peter Valdemar Mørch <peter@morch.com>
---
 builtin-log.c |    8 ++++----
 log-tree.c    |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/builtin-log.c b/builtin-log.c
index ae71540..3a79574 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -218,9 +218,9 @@ static int cmd_log_walk(struct rev_info *rev)
 		finish_early_output(rev);
 
 	/*
-	 * For --check, the exit code is based on CHECK_FAILED being
-	 * accumulated in rev->diffopt, so be careful to retain that state
-	 * information if replacing rev->diffopt in this loop
+	 * For --check and --exit-code, the exit code is based on CHECK_FAILED
+	 * and HAS_CHANGES being accumulated in rev->diffopt, so be careful to
+	 * retain that state information if replacing rev->diffopt in this loop
 	 */
 	while ((commit = get_revision(rev)) != NULL) {
 		log_tree_commit(rev, commit);
@@ -236,7 +236,7 @@ static int cmd_log_walk(struct rev_info *rev)
 	    DIFF_OPT_TST(&rev->diffopt, CHECK_FAILED)) {
 		return 02;
 	}
-	return 0;
+	return diff_result_code(&rev->diffopt, 0);
 }
 
 static int git_log_config(const char *var, const char *value, void *cb)
diff --git a/log-tree.c b/log-tree.c
index bd8b9e4..30cd5bb 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -432,7 +432,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
 	struct commit_list *parents;
 	unsigned const char *sha1 = commit->object.sha1;
 
-	if (!opt->diff)
+	if (!opt->diff && !DIFF_OPT_TST(&opt->diffopt, EXIT_WITH_STATUS))
 		return 0;
 
 	/* Root commit? */
-- 
1.6.0.rc2.5.g3452.dirty
Previous: Peter Valdemar MørchNext: Jeff King
Message 16 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.