511 path_dest: &HgPath, |
511 path_dest: &HgPath, |
512 path_source: &HgPath, |
512 path_source: &HgPath, |
513 ) { |
513 ) { |
514 let dest = path_map.tokenize(path_dest); |
514 let dest = path_map.tokenize(path_dest); |
515 let source = path_map.tokenize(path_source); |
515 let source = path_map.tokenize(path_source); |
516 let entry; |
516 let entry = if let Some(v) = base_copies.get(&source) { |
517 if let Some(v) = base_copies.get(&source) { |
517 match &v.path { |
518 entry = match &v.path { |
|
519 Some(path) => Some((*(path)).to_owned()), |
518 Some(path) => Some((*(path)).to_owned()), |
520 None => Some(source.to_owned()), |
519 None => Some(source.to_owned()), |
521 } |
520 } |
522 } else { |
521 } else { |
523 entry = Some(source.to_owned()); |
522 Some(source.to_owned()) |
524 } |
523 }; |
525 // Each new entry is introduced by the children, we |
524 // Each new entry is introduced by the children, we |
526 // record this information as we will need it to take |
525 // record this information as we will need it to take |
527 // the right decision when merging conflicting copy |
526 // the right decision when merging conflicting copy |
528 // information. See merge_copies_dict for details. |
527 // information. See merge_copies_dict for details. |
529 match copies.entry(dest) { |
528 match copies.entry(dest) { |
561 if overwrite { |
560 if overwrite { |
562 let (winner, loser) = match pick { |
561 let (winner, loser) = match pick { |
563 MergePick::Major | MergePick::Any => (src_major, src_minor), |
562 MergePick::Major | MergePick::Any => (src_major, src_minor), |
564 MergePick::Minor => (src_minor, src_major), |
563 MergePick::Minor => (src_minor, src_major), |
565 }; |
564 }; |
566 MergeResult::UseNewValue(CopySource::new_from_merge( |
565 MergeResult::NewValue(CopySource::new_from_merge( |
567 current_merge, |
566 current_merge, |
568 winner, |
567 winner, |
569 loser, |
568 loser, |
570 )) |
569 )) |
571 } else { |
570 } else { |
572 match pick { |
571 match pick { |
573 MergePick::Any | MergePick::Major => { |
572 MergePick::Any | MergePick::Major => MergeResult::RightValue, |
574 MergeResult::UseRightValue |
573 MergePick::Minor => MergeResult::LeftValue, |
575 } |
|
576 MergePick::Minor => MergeResult::UseLeftValue, |
|
577 } |
574 } |
578 } |
575 } |
579 }) |
576 }) |
580 } |
577 } |
581 |
578 |