[Commented On] D9647: copies-rust: use matching to select the final copies information
baymax (Baymax, Your Personal Patch-care Companion)
phabricator at mercurial-scm.org
Wed Dec 23 02:46:58 UTC 2020
baymax added a comment.
baymax updated this revision to Diff 24497.
✅ refresh by Heptapod after a successful CI run (🐙 💚)
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D9647?vs=24486&id=24497
BRANCH
default
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D9647/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D9647
AFFECTED FILES
rust/hg-core/src/copy_tracing.rs
CHANGE DETAILS
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
@@ -414,49 +414,37 @@
p2,
), // will be None if the vertex is not to be traversed
};
- if let Some(parent_copies) = p1_copies {
- // combine it with data for that revision
- let vertex_copies = add_from_changes(
+ // combine it with data for that revision
+ let p1_copies = match p1_copies {
+ None => None,
+ Some(parent_copies) => Some(add_from_changes(
&mut path_map,
&parent_copies,
&changes,
Parent::FirstParent,
rev,
- );
- // keep that data around for potential later combination
- copies = Some(vertex_copies);
- }
- if let Some(parent_copies) = p2_copies {
- // combine it with data for that revision
- let vertex_copies = add_from_changes(
+ )),
+ };
+ let p2_copies = match p2_copies {
+ None => None,
+ Some(parent_copies) => Some(add_from_changes(
&mut path_map,
&parent_copies,
&changes,
Parent::SecondParent,
rev,
- );
-
- copies = match copies {
- None => Some(vertex_copies),
- // Merge has two parents needs to combines their copy
- // information.
- //
- // If we got data from both parents, We need to combine
- // them.
- Some(copies) => Some(merge_copies_dict(
- &path_map,
- rev,
- vertex_copies,
- copies,
- &changes,
- )),
- };
- }
- match copies {
- Some(copies) => {
- all_copies.insert(rev, copies);
- }
- _ => {}
+ )),
+ };
+ let copies = match (p1_copies, p2_copies) {
+ (None, None) => None,
+ (c, None) => c,
+ (None, c) => c,
+ (Some(p1_copies), Some(p2_copies)) => Some(merge_copies_dict(
+ &path_map, rev, p2_copies, p1_copies, &changes,
+ )),
+ };
+ if let Some(c) = copies {
+ all_copies.insert(rev, c);
}
}
To: marmoute, #hg-reviewers
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20201223/a330c808/attachment-0002.html>
More information about the Mercurial-patches
mailing list