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

[PATCH] git-apply: fix rubbish handling in --check case

From
ABArtem Bityutskiy <dedekind1@gmail.com>
Date
Nov 23, 2011, 16:26 UTC
Message-ID
<1322065563-3651-2-git-send-email-dedekind1@gmail.com>
In-Reply-To
<1322065563-3651-1-git-send-email-dedekind1@gmail.com>
From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
This patch fixes the following inconsistency:
Let's take my bash binary.

$ ls -l /bin/bash -rwxr-xr-x. 1 root root 924200 Jun 22 16:49 /bin/bash $ file /bin/bash /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped

Let's try to apply it

$ git apply /bin/bash error: No changes $ echo $? 1

Good, rejected and error code is returned. Let's try with --check:

$ git apply --check /bin/bash $ echo $? 0

Not exactly what I expected :-) The same happnes if you use an empty file.
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---
Note, I did not extensively test it!
 Makefile        |    2 +-
 builtin/apply.c |    8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/builtin/apply.c b/builtin/apply.c
index 84a8a0b..2d6862a 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -3596,9 +3596,6 @@ static int write_out_results(struct patch *list, int skipped_patch)
 	int errs = 0;
 	struct patch *l;
 
-	if (!list && !skipped_patch)
-		return error("No changes");
-
 	for (phase = 0; phase < 2; phase++) {
 		l = list;
 		while (l) {
@@ -3741,6 +3738,11 @@ static int apply_patch(int fd, const char *filename, int options)
 	    !apply_with_reject)
 		exit(1);
 
+	if (!list && !skipped_patch) {
+		error("No changes");
+		exit(1);
+	}
+
 	if (apply && write_out_results(list, skipped_patch))
 		exit(1);
 
-- 
1.7.6.4
Previous: Artem BityutskiyNext: Brandon Casey
Message 2 of 3 in “git-apply: fix rubbish handling in --check case”
  1. git-apply: fix rubbish handling in --check caseArtem Bityutskiy, Nov 23, 2011
  2. git-apply: fix rubbish handling in --check caseArtem Bityutskiy, Nov 23, 2011
  3. Brandon CaseyNov 23, 2011

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.