mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-18 10:07:28 +00:00
jj abandon
: Report what commit or how many commits were abandoned
There are not tests for `jj abandon`, and I haven't written any yet.
This commit is contained in:
parent
c43f0a580a
commit
6765850c7d
2 changed files with 27 additions and 5 deletions
|
@ -2085,10 +2085,29 @@ fn cmd_abandon(
|
|||
)
|
||||
};
|
||||
let mut tx = workspace_command.start_transaction(&transaction_description);
|
||||
for commit in to_abandon {
|
||||
for commit in &to_abandon {
|
||||
tx.mut_repo().record_abandoned_commit(commit.id().clone());
|
||||
}
|
||||
let num_rebased = tx.mut_repo().rebase_descendants(command.settings())?;
|
||||
|
||||
if to_abandon.len() == 1 {
|
||||
ui.write("Abandoned commit ")?;
|
||||
let workspace_id = command.workspace_helper(ui)?.workspace_id();
|
||||
write_commit_summary(
|
||||
ui.stdout_formatter().as_mut(),
|
||||
tx.repo().as_repo_ref(),
|
||||
&workspace_id,
|
||||
&to_abandon[0],
|
||||
command.settings(),
|
||||
)?;
|
||||
ui.write("\n")?;
|
||||
} else {
|
||||
writeln!(
|
||||
ui,
|
||||
"Abandoned {} commits. This can be undone with `jj undo` or `jj op restore`.",
|
||||
&to_abandon.len()
|
||||
)?;
|
||||
}
|
||||
if num_rebased > 0 {
|
||||
writeln!(
|
||||
ui,
|
||||
|
|
|
@ -56,6 +56,7 @@ fn test_rebase_branch_with_merge() {
|
|||
|
||||
let stdout = test_env.jj_cmd_success(&repo_path, &["abandon", "d"]);
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
Abandoned commit b7c62f28ed10 d
|
||||
Rebased 1 descendant commits onto parents of abandoned commits
|
||||
Working copy now at: 11a2e10edf4e e
|
||||
Added 0 files, modified 0 files, removed 1 files
|
||||
|
@ -74,17 +75,18 @@ fn test_rebase_branch_with_merge() {
|
|||
test_env.jj_cmd_success(&repo_path, &["undo"]);
|
||||
let stdout = test_env.jj_cmd_success(&repo_path, &["abandon"] /* abandons `e` */);
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
Abandoned commit 5557ece3e631 e
|
||||
Working copy now at: 6b5275139632 (no description set)
|
||||
Added 0 files, modified 0 files, removed 3 files
|
||||
"###);
|
||||
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
|
||||
@
|
||||
| o d e?
|
||||
| o d e??
|
||||
| o c
|
||||
| | o b
|
||||
| |/
|
||||
|/|
|
||||
o | a e?
|
||||
o | a e??
|
||||
|/
|
||||
o
|
||||
"###);
|
||||
|
@ -92,6 +94,7 @@ fn test_rebase_branch_with_merge() {
|
|||
test_env.jj_cmd_success(&repo_path, &["undo"]);
|
||||
let stdout = test_env.jj_cmd_success(&repo_path, &["abandon", "descendants(c)"]);
|
||||
insta::assert_snapshot!(stdout, @r###"
|
||||
Abandoned 3 commits. This can be undone with `jj undo` or `jj op restore`.
|
||||
Working copy now at: e7bb061217d5 (no description set)
|
||||
Added 0 files, modified 0 files, removed 3 files
|
||||
"###);
|
||||
|
@ -99,8 +102,8 @@ fn test_rebase_branch_with_merge() {
|
|||
@
|
||||
| o b
|
||||
|/
|
||||
o a e?
|
||||
o c d e?
|
||||
o a e??
|
||||
o c d e??
|
||||
"###);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue