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

Rename jj touchup to jj diffedit

This commit is contained in:
Ilya Grigoriev 2022-12-17 19:56:21 -08:00
parent f71ca25ebe
commit c9706fc0d4
7 changed files with 24 additions and 22 deletions

View file

@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Breaking changes
* The `jj touchup` command was renamed to `jj diffedit`.
### New features
* The default log format now uses the committer timestamp instead of the author

View file

@ -110,7 +110,7 @@ updated. So will the working copy if it points to a rebased commit.
### Comprehensive support for rewriting history
Besides the usual rebase command, there's `jj describe` for editing the
description (commit message) of an arbitrary commit. There's also `jj touchup`,
description (commit message) of an arbitrary commit. There's also `jj diffedit`,
which lets you edit the changes in a commit without checking it out. To split
a commit into two, use `jj split`. You can even move part of the changes in a
commit to any other commit using `jj move`.

View file

@ -245,7 +245,7 @@ parent.
</tr>
<tr>
<td>Interactively edit the diff in a given change</td>
<td><code>jj touchup -r &lt;revision&gt;</code></td>
<td><code>jj diffedit -r &lt;revision&gt;</code></td>
<td>Not supported (can be emulated with the "edit" action in
<code>git rebase -i</code>)</td>
</tr>

View file

@ -377,10 +377,10 @@ the parent change, even if they touch the same word, and it won't cause any
conflicts.
Let's try one final command for changing the contents of an exiting commit. That
command is `jj touchup`, which lets you edit the contents of a commit without
command is `jj diffedit`, which lets you edit the contents of a commit without
checking it out.
```shell script
$ jj touchup -r @-
$ jj diffedit -r @-
Created 2423c134ea70 ABC
Rebased 1 descendant commits
Working copy now at: d31c52e8ca41 ABCD
@ -390,10 +390,10 @@ When Meld starts, edit the right side by e.g. adding something to the first
line. Then close Meld. You can now inspect the rewritten commit with
`jj diff -r @-` again and you should see your addition to the first line.
Unlike `jj squash -i`, which left the content state of the commit unchanged,
`jj touchup` (typically) results in a different state, which means that
`jj diffedit` (typically) results in a different state, which means that
descendant commits may have conflicts.
Other commands for rewriting contents of existing commits are `jj restore -i`,
`jj split`, `jj unsquash -i`. Now that you've seen how `jj squash -i` and
`jj touchup` work, you can hopefully figure out how those work (with the help of
`jj diffedit` work, you can hopefully figure out how those work (with the help of
the instructions in the diff).

View file

@ -88,7 +88,7 @@ enum Commands {
Squash(SquashArgs),
Unsquash(UnsquashArgs),
Restore(RestoreArgs),
Touchup(TouchupArgs),
Diffedit(DiffeditArgs),
Resolve(ResolveArgs),
Split(SplitArgs),
/// Merge work from multiple branches
@ -554,7 +554,7 @@ struct RestoreArgs {
/// another. See `jj squash -i` or `jj unsquash -i` if you instead want to move
/// changes into or out of the parent revision.
#[derive(clap::Args, Clone, Debug)]
struct TouchupArgs {
struct DiffeditArgs {
/// The revision to touch up. Defaults to @ if --to/--from are not
/// specified.
#[arg(long, short)]
@ -2417,10 +2417,10 @@ side. If you don't make any changes, then the operation will be aborted.
Ok(())
}
fn cmd_touchup(
fn cmd_diffedit(
ui: &mut Ui,
command: &CommandHelper,
args: &TouchupArgs,
args: &DiffeditArgs,
) -> Result<(), CommandError> {
let mut workspace_command = command.workspace_helper(ui)?;
@ -4289,7 +4289,7 @@ pub fn run_command(
Commands::Squash(sub_args) => cmd_squash(ui, command_helper, sub_args),
Commands::Unsquash(sub_args) => cmd_unsquash(ui, command_helper, sub_args),
Commands::Restore(sub_args) => cmd_restore(ui, command_helper, sub_args),
Commands::Touchup(sub_args) => cmd_touchup(ui, command_helper, sub_args),
Commands::Diffedit(sub_args) => cmd_diffedit(ui, command_helper, sub_args),
Commands::Split(sub_args) => cmd_split(ui, command_helper, sub_args),
Commands::Merge(sub_args) => cmd_merge(ui, command_helper, sub_args),
Commands::Rebase(sub_args) => cmd_rebase(ui, command_helper, sub_args),

View file

@ -261,11 +261,11 @@ fn test_help() {
// Test that global options are separated out in the help output
let test_env = TestEnvironment::default();
let stdout = test_env.jj_cmd_success(test_env.env_root(), &["touchup", "-h"]);
let stdout = test_env.jj_cmd_success(test_env.env_root(), &["diffedit", "-h"]);
insta::assert_snapshot!(stdout, @r###"
Touch up the content changes in a revision with a diff editor
Usage: jj touchup [OPTIONS]
Usage: jj diffedit [OPTIONS]
Options:
-r, --revision <REVISION> The revision to touch up. Defaults to @ if --to/--from are not specified

View file

@ -19,7 +19,7 @@ use crate::common::TestEnvironment;
pub mod common;
#[test]
fn test_touchup() {
fn test_diffedit() {
let mut test_env = TestEnvironment::default();
test_env.jj_cmd_success(test_env.env_root(), &["init", "repo", "--git"]);
let repo_path = test_env.env_root().join("repo");
@ -40,7 +40,7 @@ fn test_touchup() {
"files-before file1 file2\0files-after JJ-INSTRUCTIONS file2",
)
.unwrap();
let stdout = test_env.jj_cmd_success(&repo_path, &["touchup"]);
let stdout = test_env.jj_cmd_success(&repo_path, &["diffedit"]);
insta::assert_snapshot!(stdout, @r###"
Nothing changed.
"###);
@ -52,7 +52,7 @@ fn test_touchup() {
// Nothing happens if the diff-editor exits with an error
std::fs::write(&edit_script, "rm file2\0fail").unwrap();
let stderr = test_env.jj_cmd_failure(&repo_path, &["touchup"]);
let stderr = test_env.jj_cmd_failure(&repo_path, &["diffedit"]);
insta::assert_snapshot!(Regex::new(r"Details: [^\n]+").unwrap().replace(&stderr, "Details: <OS-Dependent>"), @r###"
Error: Failed to edit diff: Tool exited with a non-zero code.
Details: <OS-Dependent>
@ -65,7 +65,7 @@ fn test_touchup() {
// Can edit changes to individual files
std::fs::write(&edit_script, "reset file2").unwrap();
let stdout = test_env.jj_cmd_success(&repo_path, &["touchup"]);
let stdout = test_env.jj_cmd_success(&repo_path, &["diffedit"]);
insta::assert_snapshot!(stdout, @r###"
Created 1930da4a57e9 (no description set)
Working copy now at: 1930da4a57e9 (no description set)
@ -79,7 +79,7 @@ fn test_touchup() {
// Changes to a commit are propagated to descendants
test_env.jj_cmd_success(&repo_path, &["undo"]);
std::fs::write(&edit_script, "write file3\nmodified\n").unwrap();
let stdout = test_env.jj_cmd_success(&repo_path, &["touchup", "-r", "@-"]);
let stdout = test_env.jj_cmd_success(&repo_path, &["diffedit", "-r", "@-"]);
insta::assert_snapshot!(stdout, @r###"
Created c03ae96780b6 (no description set)
Rebased 1 descendant commits
@ -91,14 +91,14 @@ fn test_touchup() {
modified
"###);
// Test touchup --from @--
// Test diffedit --from @--
test_env.jj_cmd_success(&repo_path, &["undo"]);
std::fs::write(
&edit_script,
"files-before file1\0files-after JJ-INSTRUCTIONS file2 file3\0reset file2",
)
.unwrap();
let stdout = test_env.jj_cmd_success(&repo_path, &["touchup", "--from", "@--"]);
let stdout = test_env.jj_cmd_success(&repo_path, &["diffedit", "--from", "@--"]);
insta::assert_snapshot!(stdout, @r###"
Created 15f2c966d508 (no description set)
Working copy now at: 15f2c966d508 (no description set)
@ -112,7 +112,7 @@ fn test_touchup() {
}
#[test]
fn test_touchup_merge() {
fn test_diffedit_merge() {
let mut test_env = TestEnvironment::default();
test_env.jj_cmd_success(test_env.env_root(), &["init", "repo", "--git"]);
let repo_path = test_env.env_root().join("repo");
@ -147,7 +147,7 @@ fn test_touchup_merge() {
"files-before file1\0files-after JJ-INSTRUCTIONS file1 file3\0rm file1",
)
.unwrap();
let stdout = test_env.jj_cmd_success(&repo_path, &["touchup", "-r", "@-"]);
let stdout = test_env.jj_cmd_success(&repo_path, &["diffedit", "-r", "@-"]);
insta::assert_snapshot!(stdout, @r###"
Created cb2b3b755c0a merge
Rebased 1 descendant commits