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
|
heads
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Make a member of MutableView?
|
||||||
pub fn merge_views(
|
pub fn merge_views(
|
||||||
store: &StoreWrapper,
|
store: &StoreWrapper,
|
||||||
left: &op_store::View,
|
left: &op_store::View,
|
||||||
|
|
|
@ -46,7 +46,6 @@ use jujube_lib::store_wrapper::StoreWrapper;
|
||||||
use jujube_lib::transaction::Transaction;
|
use jujube_lib::transaction::Transaction;
|
||||||
use jujube_lib::tree::Tree;
|
use jujube_lib::tree::Tree;
|
||||||
use jujube_lib::trees::TreeValueDiff;
|
use jujube_lib::trees::TreeValueDiff;
|
||||||
use jujube_lib::view::merge_views;
|
|
||||||
use jujube_lib::working_copy::{CheckoutStats, WorkingCopy};
|
use jujube_lib::working_copy::{CheckoutStats, WorkingCopy};
|
||||||
use jujube_lib::{conflicts, files, git};
|
use jujube_lib::{conflicts, files, git};
|
||||||
use pest::Parser;
|
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()));
|
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();
|
tx.commit();
|
||||||
update_working_copy(
|
update_working_copy(
|
||||||
ui,
|
ui,
|
||||||
|
|
Loading…
Reference in a new issue