diff --git a/cli/src/commands/workspace/update_stale.rs b/cli/src/commands/workspace/update_stale.rs index 58c1f56dbc..2ddb46b4c6 100644 --- a/cli/src/commands/workspace/update_stale.rs +++ b/cli/src/commands/workspace/update_stale.rs @@ -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"); diff --git a/cli/tests/test_workspaces.rs b/cli/tests/test_workspaces.rs index db6f07e513..6b1db1f488 100644 --- a/cli/tests/test_workspaces.rs +++ b/cli/tests/test_workspaces.rs @@ -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 76d0126b3e5c + "###); insta::assert_snapshot!(stdout, @""); insta::assert_snapshot!(get_log_output(&test_env, &main_path), @r###" - ○ b0b400439a82 secondary@ + ○ 15df8cb57d3f secondary@ ○ 96b31dafdc41 │ @ 6c051bd1ccd5 default@ ├─╯ @@ -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 15df8cb5 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 @@ -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 test.user@example.com 2001-02-03 08:05:18 secondary@ b0b40043 - │ (no description set) - ○ kmkuslsw hidden test.user@example.com 2001-02-03 08:05:18 62f70695 - (empty) (no description set) + @ kmkuslsw test.user@example.com 2001-02-03 08:05:18 secondary@ 15df8cb5 + │ RECOVERY COMMIT FROM `jj workspace update-stale` + ○ kmkuslsw hidden test.user@example.com 2001-02-03 08:05:18 76d0126b + (empty) RECOVERY COMMIT FROM `jj workspace update-stale` "###); }