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

[PATCH 3/4] diff: remove often unused parameters from diff_unmerge()

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 24, 2011, 20:51 UTC
Message-ID
<1303678289-27627-4-git-send-email-gitster@pobox.com>
In-Reply-To
<1303678289-27627-1-git-send-email-gitster@pobox.com>

e9c8409 (diff-index --cached --raw: show tree entry on the LHS for unmerged entries., 2007-01-05) added a <mode, object name> pair as parameters to this function, to store them in the pre-image side of an unmerged file pair. Now the function is fixed to return the filepair it queued, we can make the caller on the special case codepath to do so.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 diff-lib.c |    7 ++++---
 diff.c     |    5 +----
 diff.h     |    5 +----
 3 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/diff-lib.c b/diff-lib.c
index 392ce2b..a983855 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -183,7 +183,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
 			 * Show the diff for the 'ce' if we found the one
 			 * from the desired stage.
 			 */
-			diff_unmerge(&revs->diffopt, ce->name, 0, null_sha1);
+			diff_unmerge(&revs->diffopt, ce->name);
 			if (ce_stage(ce) != diff_unmerged_stage)
 				continue;
 		}
@@ -372,8 +372,9 @@ static void do_oneway_diff(struct unpack_trees_options *o,
 	match_missing = !revs->ignore_merges;
 
 	if (cached && idx && ce_stage(idx)) {
-		diff_unmerge(&revs->diffopt, idx->name, idx->ce_mode,
-			     idx->sha1);
+		struct diff_filepair *pair;
+		pair = diff_unmerge(&revs->diffopt, idx->name);
+		fill_filespec(pair->one, idx->sha1, idx->ce_mode);
 		return;
 	}
 
diff --git a/diff.c b/diff.c
index 4c34c64..d2c5c56 100644
--- a/diff.c
+++ b/diff.c
@@ -4308,9 +4308,7 @@ void diff_change(struct diff_options *options,
 		DIFF_OPT_SET(options, HAS_CHANGES);
 }
 
-struct diff_filepair *diff_unmerge(struct diff_options *options,
-				   const char *path,
-				   unsigned mode, const unsigned char *sha1)
+struct diff_filepair *diff_unmerge(struct diff_options *options, const char *path)
 {
 	struct diff_filepair *pair;
 	struct diff_filespec *one, *two;
@@ -4321,7 +4319,6 @@ struct diff_filepair *diff_unmerge(struct diff_options *options,
 
 	one = alloc_filespec(path);
 	two = alloc_filespec(path);
-	fill_filespec(one, sha1, mode);
 	pair = diff_queue(&diff_queued_diff, one, two);
 	pair->is_unmerged = 1;
 	return pair;
diff --git a/diff.h b/diff.h
index f51a8ee..3edb705 100644
--- a/diff.h
+++ b/diff.h
@@ -209,10 +209,7 @@ extern void diff_change(struct diff_options *,
 			const char *fullpath,
 			unsigned dirty_submodule1, unsigned dirty_submodule2);
 
-extern struct diff_filepair *diff_unmerge(struct diff_options *,
-			 const char *path,
-			 unsigned mode,
-			 const unsigned char *sha1);
+extern struct diff_filepair *diff_unmerge(struct diff_options *, const char *path);
 
 #define DIFF_SETUP_REVERSE      	1
 #define DIFF_SETUP_USE_CACHE		2
-- 
1.7.5
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 8 in “Fix diff-files output for unmerged paths”
  1. 0/4 Fix diff-files output for unmerged pathsJunio C Hamano, Apr 24, 2011
  2. 1/4 test: use $_z40 from test-libJunio C Hamano, Apr 24, 2011
  3. 2/4 diff.c: return filepair from diff_unmerge()Junio C Hamano, Apr 24, 2011
  4. Thiago FarinaApr 24, 2011
  5. Junio C HamanoApr 25, 2011
  6. 3/4 diff: remove often unused parameters from diff_unmerge()Junio C Hamano, Apr 24, 2011
  7. 4/4 diff-files: show unmerged entries correctlyJunio C Hamano, Apr 24, 2011
  8. Fix "add -u" that sometimes fails to resolve unmerged pathsJunio C Hamano, Apr 24, 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.