ok/jj
1
0
Fork 0
forked from mirrors/jj

prev: make revset code more similar to next

This commit is contained in:
Martin von Zweigbergk 2024-06-20 20:44:13 -07:00 committed by Martin von Zweigbergk
parent 49b76cbd8c
commit 3db183b4c5

View file

@ -79,23 +79,25 @@ pub(crate) fn cmd_prev(
.view()
.heads()
.contains(current_wc_id);
let wc_revset = RevsetExpression::commit(current_wc_id.clone());
// If we're editing, start at the working-copy commit. Otherwise, start from
// its direct parent(s).
let target_revset = if edit {
RevsetExpression::commit(current_wc_id.clone())
let start_revset = if edit {
wc_revset.clone()
} else {
RevsetExpression::commit(current_wc_id.clone()).parents()
wc_revset.parents()
};
let target_revset = if args.conflict {
// If people desire to move to the root conflict, replace the `heads()` below
// with `roots(). But let's wait for feedback.
target_revset
start_revset
.parents()
.ancestors()
.filtered(RevsetFilterPredicate::HasConflict)
.heads()
} else {
target_revset.ancestors_at(args.offset)
start_revset.ancestors_at(args.offset)
};
let targets: Vec<_> = target_revset
.evaluate_programmatic(workspace_command.repo().as_ref())?