summaryrefslogtreecommitdiff
path: root/builtin/checkout.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-09-03 16:43:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-09-03 16:43:41 (GMT)
commit8aed4a5e38a2a4f31567e01ab2a73341e972c08a (patch)
tree349cd09847bc932588ca38634b75a65846f82751 /builtin/checkout.c
parent22ffc39a0332e892ddbf16b39d9b611aff238d9b (diff)
parent7610fa57e63b0acc0a66717fc2d85755634db591 (diff)
downloadgit-8aed4a5e38a2a4f31567e01ab2a73341e972c08a.zip
git-8aed4a5e38a2a4f31567e01ab2a73341e972c08a.tar.gz
git-8aed4a5e38a2a4f31567e01ab2a73341e972c08a.tar.bz2
Merge branch 'jn/merge-renormalize'
* jn/merge-renormalize: merge-recursive --renormalize rerere: never renormalize rerere: migrate to parse-options API t4200 (rerere): modernize style ll-merge: let caller decide whether to renormalize ll-merge: make flag easier to populate Documentation/technical: document ll_merge merge-trees: let caller decide whether to renormalize merge-trees: push choice to renormalize away from low level t6038 (merge.renormalize): check that it can be turned off t6038 (merge.renormalize): try checkout -m and cherry-pick t6038 (merge.renormalize): style nitpicks Don't expand CRLFs when normalizing text during merge Try normalizing files to avoid delete/modify conflicts when merging Avoid conflicts when merging branches with mixed normalization Conflicts: builtin/rerere.c t/t4200-rerere.sh
Diffstat (limited to 'builtin/checkout.c')
-rw-r--r--builtin/checkout.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 7250e5c..ff5ac1e 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -154,6 +154,10 @@ static int checkout_merged(int pos, struct checkout *state)
read_mmblob(&ours, active_cache[pos+1]->sha1);
read_mmblob(&theirs, active_cache[pos+2]->sha1);
+ /*
+ * NEEDSWORK: re-create conflicts from merges with
+ * merge.renormalize set, too
+ */
status = ll_merge(&result_buf, path, &ancestor, "base",
&ours, "ours", &theirs, "theirs", 0);
free(ancestor.ptr);
@@ -437,6 +441,13 @@ static int merge_working_tree(struct checkout_opts *opts,
*/
add_files_to_cache(NULL, NULL, 0);
+ /*
+ * NEEDSWORK: carrying over local changes
+ * when branches have different end-of-line
+ * normalization (or clean+smudge rules) is
+ * a pain; plumb in an option to set
+ * o.renormalize?
+ */
init_merge_options(&o);
o.verbosity = 0;
work = write_tree_from_memory(&o);