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

[PATCH] Do not run useless show-diff on unmerged paths repeatedly.

From
Junio C Hamano <junkio@cox.net>
Date
Apr 17, 2005, 02:18 UTC
Message-ID
<7vis2m2lk5.fsf@assigned-by-dhcp.cox.net>

When run on unmerged dircache, show-diff compares the working file with each non-empty stage for that path. Two out of three times, this is not very helpful. This patch makes it report the unmergedness only once per each path and avoids running the actual diff.

Upper layer SCMs like Cogito are expected to find out mode/SHA1 for each stage by using "show-files --stage" and run the diff itself. This would result in more sensible diffs.

To be applied on top of my previous patches:
    [PATCH] Optionally tell show-diff to show only named files.
    [PATCH] show-diff -z option for machine readable output.
    [PATCH] show-diff shell safety.
    [PATCH] (take 2) Rename confusing variable in show-diff.
    [PATCH] show-diff style fix.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 ++show-diff.c |   13 +++++++++++++
 1 files changed, 13 insertions(+)

--- ./show-diff.c 2005-04-16 19:01:28.000000000 -0700 +++ ./++show-diff.c 2005-04-16 18:57:55.000000000 -0700

@@ -167,6 +167,19 @@
 		    ! matches_pathspec(ce, argv+1, argc-1))
 			continue;
 
+		if (ce_stage(ce)) {
+			if (machine_readable)
+				printf("U %s%c", ce->name, 0);
+			else
+				printf("%s: Unmerged\n",
+				       ce->name);
+			while (i < entries &&
+			       !strcmp(ce->name, active_cache[i]->name))
+				i++;
+			i--; /* compensate for loop control increments */
+			continue;
+		}
+ 
 		if (stat(ce->name, &st) < 0) {
 			if (errno == ENOENT && silent_on_nonexisting_files)
 				continue;
Message 1 of 1 in “Do not run useless show-diff on unmerged paths repeatedly.”
  1. Do not run useless show-diff on unmerged paths repeatedly.Junio C Hamano, Apr 17, 2005

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.