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

[PATCH] merge-recursive: Small code cleanup

From
Elijah Newren <newren@gmail.com>
Date
Sep 8, 2010, 07:21 UTC
Message-ID
<1283930482-10228-1-git-send-email-newren@gmail.com>

process_renames() had a variable named "stage" and derived variables src_other and dst_other whose purpose was not entirely clear to me. Make the name of stage slightly more descriptive and add a brief comment explaining what is occurring.

Signed-off-by: Elijah Newren <newren@gmail.com>
---
Was previously PATCH 2/3 from my "fix resolvable rename + D/F conflict
testcases" series, but I've pulled this patch out since it's not
strictly related.  Also, due to Ken Schalk's response, I've dropped
the piece of the patch he pointed out an issue in.  So now it's just a
smaller cleanup, that is now based on maint.
 merge-recursive.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index fb6aa4a..ba9cbab 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -924,15 +924,23 @@ static int process_renames(struct merge_options *o,
 			struct string_list_item *item;
 			/* we only use sha1 and mode of these */
 			struct diff_filespec src_other, dst_other;
-			int try_merge, stage = a_renames == renames1 ? 3: 2;
+			int try_merge;
 
-			remove_file(o, 1, ren1_src, o->call_depth || stage == 3);
+			/*
+			 * unpack_trees loads entries from common-commit
+			 * into stage 1, from head-commit into stage 2, and
+			 * from merge-commit into stage 3.  We keep track
+			 * of which side corresponds to the rename.
+			 */
+			int renamed_stage = a_renames == renames1 ? 2 : 3;
+			int other_stage =   a_renames == renames1 ? 3 : 2;
 
-			hashcpy(src_other.sha1, ren1->src_entry->stages[stage].sha);
-			src_other.mode = ren1->src_entry->stages[stage].mode;
-			hashcpy(dst_other.sha1, ren1->dst_entry->stages[stage].sha);
-			dst_other.mode = ren1->dst_entry->stages[stage].mode;
+			remove_file(o, 1, ren1_src, o->call_depth || renamed_stage == 2);
 
+			hashcpy(src_other.sha1, ren1->src_entry->stages[other_stage].sha);
+			src_other.mode = ren1->src_entry->stages[other_stage].mode;
+			hashcpy(dst_other.sha1, ren1->dst_entry->stages[other_stage].sha);
+			dst_other.mode = ren1->dst_entry->stages[other_stage].mode;
 			try_merge = 0;
 
 			if (string_list_has_string(&o->current_directory_set, ren1_dst)) {
-- 
1.7.2.3.7.gf6a98
Message 1 of 1 in “merge-recursive: Small code cleanup”
  1. merge-recursive: Small code cleanupElijah Newren, Sep 8, 2010

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.