pub fn duplicate_commits(
mut_repo: &mut MutableRepo,
target_commits: &[CommitId],
parent_commit_ids: &[CommitId],
children_commit_ids: &[CommitId],
) -> BackendResult<DuplicateCommitsStats>Expand description
Duplicates the given target_commits onto a new location in the graph.
The roots of target_commits are duplicated on top of the new
parent_commit_ids, whilst other commits in target_commits are duplicated
on top of the newly duplicated commits in the target set. If
children_commit_ids is not empty, the children_commit_ids will be
rebased onto the heads of the duplicated target commits.
This assumes that commits in children_commit_ids can be rewritten. There
should also be no cycles in the resulting graph, i.e. children_commit_ids
should not be ancestors of parent_commit_ids. Commits in target_commits
should be in reverse topological order (children before parents).