From b8f6a48c66166b5e08292fb0753bbf807ed72de7 Mon Sep 17 00:00:00 2001 From: Martin von Zweigbergk Date: Thu, 22 Jun 2023 01:53:57 -0700 Subject: [PATCH] merge: fast-path trivial merge of 1-way "conflicts" I don't think we call `trivial_merge()` for 1-way "conflicts" yet, but I'll probably end up doing that soon. --- lib/src/merge.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/src/merge.rs b/lib/src/merge.rs index 8d8a85fe6..12b1a39e0 100644 --- a/lib/src/merge.rs +++ b/lib/src/merge.rs @@ -29,8 +29,10 @@ where "trivial_merge() requires exactly one more adds than removes" ); - // Optimize the common case of a 3-way merge - if adds.len() == 2 { + // Optimize the common cases of 3-way merge and 1-way (non-)merge + if adds.len() == 1 { + return Some(&adds[0]); + } else if adds.len() == 2 { return if adds[0] == adds[1] { Some(&adds[0]) } else if adds[0] == removes[0] {