diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-08-05 06:13:49 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-06 09:20:00 -0700 |
commit | 3e7589b7b3ff7a7aa93bec39c40603e370c51317 (patch) | |
tree | 4df3a2089810c1e43f939a12c593bd0635084fa8 | |
parent | beeeb45493332f38de2a3b58120c5bebb5863577 (diff) | |
download | git-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>
-rw-r--r-- | merge-recursive.c | 9 |
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) |