From 7ecbcbe55fb86161406bdcb484da339bd6ccbca2 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 14 Feb 2013 16:40:50 +1100 Subject: [PATCH] merge: remove some meaningless AlreadyApplied Finding an AlreadyApplied amid Conflicts and Extraneous etc is unlikely to be helpful. So don't do it. Signed-off-by: NeilBrown --- merge2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/merge2.c b/merge2.c index 9f97c65..26ea70e 100644 --- a/merge2.c +++ b/merge2.c @@ -477,6 +477,21 @@ struct ci make_merger(struct file af, struct file bf, struct file cf, rv.merger[i].in_conflict = 0; rv.merger[i].ignored = 0; assert(i < l); + + /* Now revert any AlreadyApplied that aren't bounded by + * Unchanged or Changed. + */ + for (i = 0; rv.merger[i].type != End; i++) { + if (rv.merger[i].type != AlreadyApplied) + continue; + if (i > 0 && rv.merger[i-1].type != Unchanged && + rv.merger[i-1].type != Changed) + rv.merger[i].type = Conflict; + if (rv.merger[i+1].type != Unchanged && + rv.merger[i+1].type != Changed && + rv.merger[i+1].type != End) + rv.merger[i].type = Conflict; + } rv.conflicts = isolate_conflicts(af, bf, cf, csl1, csl2, words, rv.merger, show_wiggles); if (wiggle_found) -- 2.39.5