# HG changeset patch # User Pierre-Yves David # Date 2020-12-23 02:04:33 # Node ID 3c5a8b13206a53b0a0e8b6138ab5ffdc18fa048a # Parent 2bd069788367608b2f67273c5b3cdcc0b3f3ed6f copies-rust: fix reverted argument when merging tiny minor or major The argument where not passed in the right other. This is not caught by the test (yet) because it is a sub case of a special case. Am I adding this to my list of things to test. Using test directly in Rust would be appropriate here. However we don't have the ability to test this code that way yet, and I am focussing on other part of that work right now. Differential Revision: https://phab.mercurial-scm.org/D9657 diff --git a/rust/hg-core/src/copy_tracing.rs b/rust/hg-core/src/copy_tracing.rs --- a/rust/hg-core/src/copy_tracing.rs +++ b/rust/hg-core/src/copy_tracing.rs @@ -645,7 +645,7 @@ fn merge_copies_dict { let (pick, overwrite) = - cmp_value(oracle, &dest, &src_major, src_minor); + cmp_value(oracle, &dest, src_minor, &src_major); if overwrite { oracle.record_overwrite(src_minor.rev, current_merge); oracle.record_overwrite(src_major.rev, current_merge); @@ -661,8 +661,8 @@ fn merge_copies_dict None, - MergePick::Minor => minor.insert(dest, src_major), + MergePick::Any | MergePick::Minor => None, + MergePick::Major => minor.insert(dest, src_major), }; } }