forked from mirrors/jj
commands: rewrite jj op undo
using new MutableRepo::merge()
This commit is contained in:
parent
a7f4f4cf5b
commit
8048d9641e
2 changed files with 4 additions and 14 deletions
|
@ -110,6 +110,7 @@ fn heads_of_set(
|
|||
heads
|
||||
}
|
||||
|
||||
// TODO: Make a member of MutableView?
|
||||
pub fn merge_views(
|
||||
store: &StoreWrapper,
|
||||
left: &op_store::View,
|
||||
|
|
|
@ -46,7 +46,6 @@ use jujube_lib::store_wrapper::StoreWrapper;
|
|||
use jujube_lib::transaction::Transaction;
|
||||
use jujube_lib::tree::Tree;
|
||||
use jujube_lib::trees::TreeValueDiff;
|
||||
use jujube_lib::view::merge_views;
|
||||
use jujube_lib::working_copy::{CheckoutStats, WorkingCopy};
|
||||
use jujube_lib::{conflicts, files, git};
|
||||
use pest::Parser;
|
||||
|
@ -1979,20 +1978,10 @@ fn cmd_op_undo(
|
|||
));
|
||||
}
|
||||
|
||||
let fixed_view = {
|
||||
let parent_view = parent_ops[0].view();
|
||||
let bad_view = bad_op.view();
|
||||
let current_view = repo.op().view();
|
||||
merge_views(
|
||||
repo.store(),
|
||||
current_view.store_view(),
|
||||
bad_view.store_view(),
|
||||
parent_view.store_view(),
|
||||
)
|
||||
};
|
||||
|
||||
let mut tx = repo.start_transaction(&format!("undo operation {}", bad_op.id().hex()));
|
||||
tx.set_view(fixed_view);
|
||||
let bad_repo = repo.loader().load_at(&bad_op)?;
|
||||
let parent_repo = repo.loader().load_at(&parent_ops[0])?;
|
||||
tx.mut_repo().merge(&bad_repo, &parent_repo);
|
||||
tx.commit();
|
||||
update_working_copy(
|
||||
ui,
|
||||
|
|
Loading…
Reference in a new issue