Skip to content

Commit

Permalink
cli: workspace update-stale: set description on recovery commit
Browse files Browse the repository at this point in the history
The recover commit we create in some cases (when an operation has been
lost) doesn't currently have a description. That makes it easy to miss
that it's special.
  • Loading branch information
martinvonz committed Oct 30, 2024
1 parent fa5372f commit d308020
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
10 changes: 10 additions & 0 deletions cli/src/commands/workspace/update_stale.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,16 @@ fn create_and_check_out_recovery_commit(
vec![commit_id.clone()],
commit.tree_id().clone(),
)
.set_description(
"recovery commit from `jj workspace update-stale`
This commit contains changes that were written to the working copy by an
operation that was subsequently lost (or was at least unavailable when you ran
`jj workspace update-stale`). Because the operation was lost, we don't know
what the parent commits are supposed to be. That means that the diff compared
to the current parents may contain changes from multiple commits.
",
)
.write()?;
mut_repo.set_wc_commit(workspace_id, new_commit.id().clone())?;
let repo = tx.commit("recovery commit");
Expand Down
18 changes: 9 additions & 9 deletions cli/tests/test_workspaces.rs
Original file line number Diff line number Diff line change
Expand Up @@ -689,14 +689,14 @@ fn test_workspaces_current_op_discarded_by_other() {
"###);

let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["workspace", "update-stale"]);
insta::assert_snapshot!(stderr, @r#"
insta::assert_snapshot!(stderr, @r###"
Failed to read working copy's current operation; attempting recovery. Error message from read attempt: Object 8d4abed655badb70b1bab62aa87136619dbc3c8015a8ce8dfb7abfeca4e2f36c713d8f84e070a0613907a6cee7e1cc05323fe1205a319b93fe978f11a060c33c of type operation not found
Created and checked out recovery commit 62f70695e3b0
"#);
Created and checked out recovery commit 863c247c4ee8
"###);
insta::assert_snapshot!(stdout, @"");

insta::assert_snapshot!(get_log_output(&test_env, &main_path), @r###"
b0b400439a82 secondary@
b2aa3385aa5b secondary@
○ 96b31dafdc41
│ @ 6c051bd1ccd5 default@
├─╯
Expand All @@ -718,7 +718,7 @@ fn test_workspaces_current_op_discarded_by_other() {
A added
D deleted
M modified
Working copy : kmkuslsw b0b40043 (no description set)
Working copy : kmkuslsw b2aa3385 recovery commit from `jj workspace update-stale`
Parent commit: rzvqmyuk 96b31daf (empty) (no description set)
"###);
// The modified file should have the same contents it had before (not reset to
Expand All @@ -730,10 +730,10 @@ fn test_workspaces_current_op_discarded_by_other() {
let (stdout, stderr) = test_env.jj_cmd_ok(&secondary_path, &["evolog"]);
insta::assert_snapshot!(stderr, @"");
insta::assert_snapshot!(stdout, @r###"
@ kmkuslsw [email protected] 2001-02-03 08:05:18 secondary@ b0b40043
(no description set)
○ kmkuslsw hidden [email protected] 2001-02-03 08:05:18 62f70695
(empty) (no description set)
@ kmkuslsw [email protected] 2001-02-03 08:05:18 secondary@ b2aa3385
recovery commit from `jj workspace update-stale`
○ kmkuslsw hidden [email protected] 2001-02-03 08:05:18 863c247c
(empty) recovery commit from `jj workspace update-stale`
"###);
}

Expand Down

0 comments on commit d308020

Please sign in to comment.