summaryrefslogtreecommitdiff
path: root/merge-recursive.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-08-05 06:13:49 -0500
committerJunio C Hamano <gitster@pobox.com>2010-08-06 09:20:00 -0700
commit3e7589b7b3ff7a7aa93bec39c40603e370c51317 (patch)
tree4df3a2089810c1e43f939a12c593bd0635084fa8 /merge-recursive.c
parentbeeeb45493332f38de2a3b58120c5bebb5863577 (diff)
downloadgit-3e7589b7b3ff7a7aa93bec39c40603e370c51317.tar.gz
merge-trees: push choice to renormalize away from low level
The merge machinery decides whether to resmudge and clean relevant entries based on the global merge_renormalize setting, which is set by "git merge" based on its configuration (and left alone by other commands). A nicer interface would make that decision a parameter to merge_trees so callers would pass in a choice made on a call-by-call basis. Start by making blob_unchanged stop examining the merge_renormalize global. In other words, this change is a trivial no-op, but it brings us closer to something good. Cc: Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-recursive.c')
-rw-r--r--merge-recursive.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index 5ad8fc9e7e..2b55fc27dd 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1074,7 +1074,7 @@ static int read_sha1_strbuf(const unsigned char *sha1, struct strbuf *dst)
static int blob_unchanged(const unsigned char *o_sha,
const unsigned char *a_sha,
- const char *path)
+ int renormalize, const char *path)
{
struct strbuf o = STRBUF_INIT;
struct strbuf a = STRBUF_INIT;
@@ -1082,7 +1082,7 @@ static int blob_unchanged(const unsigned char *o_sha,
if (sha_eq(o_sha, a_sha))
return 1;
- if (!merge_renormalize)
+ if (!renormalize)
return 0;
assert(o_sha && a_sha);
@@ -1112,6 +1112,7 @@ static int process_entry(struct merge_options *o,
print_index_entry("\tpath: ", entry);
*/
int clean_merge = 1;
+ int normalize = merge_renormalize;
unsigned o_mode = entry->stages[1].mode;
unsigned a_mode = entry->stages[2].mode;
unsigned b_mode = entry->stages[3].mode;
@@ -1122,8 +1123,8 @@ static int process_entry(struct merge_options *o,
if (o_sha && (!a_sha || !b_sha)) {
/* Case A: Deleted in one */
if ((!a_sha && !b_sha) ||
- (!b_sha && blob_unchanged(o_sha, a_sha, path)) ||
- (!a_sha && blob_unchanged(o_sha, b_sha, path))) {
+ (!b_sha && blob_unchanged(o_sha, a_sha, normalize, path)) ||
+ (!a_sha && blob_unchanged(o_sha, b_sha, normalize, path))) {
/* Deleted in both or deleted in one and
* unchanged in the other */
if (a_sha)