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

[PATCH 2/3] diff: consolidate various calls into diffcore.

From
Junio C Hamano <junkio@cox.net>
Date
May 29, 2005, 23:56 UTC
Message-ID
<7v64x1h9ia.fsf_-_@assigned-by-dhcp.cox.net>
In-Reply-To
<7vmzqdiore.fsf_-_@assigned-by-dhcp.cox.net>

The three diff-* brothers had a sequence of calls into diffcore that were almost identical. Introduce a new diffcore_std() function that takes all the necessary arguments to consolidate it. This will make later enhancements and changing the order of diffcore application simpler.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---

diff-cache.c | 9 +++------ diff-files.c | 9 +++------ diff-tree.c | 7 +++---- diff.c | 12 ++++++++++++ diff.h | 4 ++++ 5 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/diff-cache.c b/diff-cache.c
--- a/diff-cache.c
+++ b/diff-cache.c
@@ -240,12 +240,9 @@ int main(int argc, const char **argv)
 		die("unable to read tree object %s", tree_name);
 
 	ret = diff_cache(active_cache, active_nr);
-	if (pathspec)
-		diffcore_pathspec(pathspec);
-	if (detect_rename)
-		diffcore_rename(detect_rename, diff_score_opt);
-	if (pickaxe)
-		diffcore_pickaxe(pickaxe, pickaxe_opts);
+	diffcore_std(pathspec,
+		     detect_rename, diff_score_opt,
+		     pickaxe, pickaxe_opts);
 	diff_flush(diff_output_format, 1);
 	return ret;
 }
diff --git a/diff-files.c b/diff-files.c
--- a/diff-files.c
+++ b/diff-files.c
@@ -116,12 +116,9 @@ int main(int argc, const char **argv)
 		show_modified(oldmode, mode, ce->sha1, null_sha1,
 			      ce->name);
 	}
-	if (1 < argc)
-		diffcore_pathspec(argv + 1);
-	if (detect_rename)
-		diffcore_rename(detect_rename, diff_score_opt);
-	if (pickaxe)
-		diffcore_pickaxe(pickaxe, pickaxe_opts);
+	diffcore_std(argv + 1,
+		     detect_rename, diff_score_opt,
+		     pickaxe, pickaxe_opts);
 	diff_flush(diff_output_format, 1);
 	return 0;
 }
diff --git a/diff-tree.c b/diff-tree.c
--- a/diff-tree.c
+++ b/diff-tree.c
@@ -261,10 +261,9 @@ static void call_diff_setup(void)
 
 static int call_diff_flush(void)
 {
-	if (detect_rename)
-		diffcore_rename(detect_rename, diff_score_opt);
-	if (pickaxe)
-		diffcore_pickaxe(pickaxe, pickaxe_opts);
+	diffcore_std(0,
+		     detect_rename, diff_score_opt,
+		     pickaxe, pickaxe_opts);
 	if (diff_queue_is_empty()) {
 		diff_flush(DIFF_FORMAT_NO_OUTPUT, 0);
 		return 0;
diff --git a/diff.c b/diff.c
--- a/diff.c
+++ b/diff.c
@@ -887,6 +887,18 @@ void diff_flush(int diff_output_style, i
 	q->nr = q->alloc = 0;
 }
 
+void diffcore_std(const char **paths,
+		  int detect_rename, int rename_score,
+		  const char *pickaxe, int pickaxe_opts)
+{
+	if (paths && paths[0])
+		diffcore_pathspec(paths);
+	if (detect_rename)
+		diffcore_rename(detect_rename, rename_score);
+	if (pickaxe)
+		diffcore_pickaxe(pickaxe, pickaxe_opts);
+}
+
 void diff_addremove(int addremove, unsigned mode,
 		    const unsigned char *sha1,
 		    const char *base, const char *path)
diff --git a/diff.h b/diff.h
--- a/diff.h
+++ b/diff.h
@@ -43,6 +43,10 @@ extern void diffcore_pickaxe(const char 
 
 extern void diffcore_pathspec(const char **pathspec);
 
+extern void diffcore_std(const char **paths,
+			 int detect_rename, int rename_score,
+			 const char *pickaxe, int pickaxe_opts);
+
 extern int diff_queue_is_empty(void);
 
 #define DIFF_FORMAT_HUMAN	0
Previous: Junio C HamanoNext: Junio C Hamano
Message 33 of 45 in “Broken directory pathname pruning..”
  1. Linus TorvaldsMay 27, 2005
  2. Junio C HamanoMay 27, 2005
  3. allow pathspec to end with a slashJunio C Hamano, May 27, 2005
  4. allow pathspec to end with a slash (take #2)Junio C Hamano, May 27, 2005
  5. Diff updates, fixing pathspec and rename/copy interaction.Junio C Hamano, May 27, 2005
  6. Linus TorvaldsMay 27, 2005
  7. Junio C HamanoMay 27, 2005
  8. 00/12 Diff updatesJunio C Hamano, May 27, 2005
  9. 01/12 Fix math thinko in similarity estimator.Junio C Hamano, May 27, 2005
  10. 02/12 Introduce diff_free_filepair() funcion.Junio C Hamano, May 27, 2005
  11. 03/12 Make pathspec only care about the detination tree.Junio C Hamano, May 27, 2005
  12. 04/12 Remove unused rank field from diff_core structure.Junio C Hamano, May 27, 2005
  13. 05/12 Do not expose internal scaling to diff-helper.Junio C Hamano, May 27, 2005
  14. 06/12 Remove final newline from the value of xfrm_msg variable.Junio C Hamano, May 27, 2005
  15. 07/12 Clean up diff_setup() to make it more extensible.Junio C Hamano, May 27, 2005
  16. 08/12 Remove a function not used anymore.Junio C Hamano, May 27, 2005
  17. 09/12 Add --pickaxe-all to diff-* brothers.Junio C Hamano, May 27, 2005
  18. 10/12 Fix the way diffcore-rename records unremoved source.Junio C Hamano, May 27, 2005
  19. 11/12 Move pathspec to the beginning of the diffcore chain.Junio C Hamano, May 27, 2005
  20. 12/12 Optimize diff-tree -[CM] --stdinJunio C Hamano, May 27, 2005
  21. Yoichi YuasaJun 4, 2005
  22. Junio C HamanoMay 27, 2005
  23. Do not show empty diff in diff-cache uncached.Junio C Hamano, May 28, 2005
  24. Diff: two fixes.Junio C Hamano, May 28, 2005
  25. diff-helper: fix R/C score parsing under -z flag.Junio C Hamano, May 29, 2005
  26. diff-cache: diff-patch (-p) format fixes.Junio C Hamano, May 29, 2005
  27. diff: code clean-up.Junio C Hamano, May 29, 2005
  28. Linus TorvaldsMay 29, 2005
  29. Junio C HamanoMay 29, 2005
  30. Junio C HamanoMay 29, 2005
  31. 0/3 Leftover bits after 12-seriesJunio C Hamano, May 29, 2005
  32. 1/3 diff-helper: Fix R/C score parsing under -z flag.Junio C Hamano, May 29, 2005
  33. 2/3 diff: consolidate various calls into diffcore.Junio C Hamano, May 29, 2005
  34. 3/3 diff: code clean-up and removal of rename hack.Junio C Hamano, May 29, 2005
  35. 0/4 Junio C Hamano, May 30, 2005
  36. 1/4 diff: further cleanup.Junio C Hamano, May 30, 2005
  37. 2/4 diff: fix the culling of unneeded delete record.Junio C Hamano, May 30, 2005
  38. 3/4 Add -B flag to diff-* brothers.Junio C Hamano, May 30, 2005
  39. 4/4 Add -O<orderfile> option to diff-* brothers.Junio C Hamano, May 30, 2005
  40. Linus TorvaldsMay 30, 2005
  41. Junio C HamanoMay 30, 2005
  42. apply.c: tolerate diff from a dirty but unchanged pathJunio C Hamano, Jun 11, 2005
  43. Linus TorvaldsJun 12, 2005
  44. Linus TorvaldsJun 12, 2005
  45. Junio C HamanoJun 12, 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.