git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Do not run useless show-diff on unmerged paths repeatedly.
@ 2005-04-17  2:18 Junio C Hamano
  0 siblings, 0 replies; only message in thread
From: Junio C Hamano @ 2005-04-17  2:18 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

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;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-04-17  2:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-17  2:18 [PATCH] Do not run useless show-diff on unmerged paths repeatedly Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).