mirror of
https://github.com/martinvonz/jj.git
synced 2024-12-25 05:29:39 +00:00
feat(rebase): Rename --skip-empty to --skip-emptied.
This is based on @martinvonz's comment in #3830 about the inconsistency between squash --keep-emptied and rebase --skip-empty.
This commit is contained in:
parent
034859b52f
commit
31ac0d7e1f
4 changed files with 18 additions and 6 deletions
|
@ -40,6 +40,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
move` to ensure that the target branch already exists.
|
move` to ensure that the target branch already exists.
|
||||||
[#3584](https://github.com/martinvonz/jj/issues/3584)
|
[#3584](https://github.com/martinvonz/jj/issues/3584)
|
||||||
|
|
||||||
|
* `jj rebase --skip-empty` has been renamed to `jj rebase --skip-emptied`
|
||||||
|
|
||||||
### Deprecations
|
### Deprecations
|
||||||
|
|
||||||
* Replacing `-l` shorthand for `--limit` with `-n` in `jj log`, `jj op log`
|
* Replacing `-l` shorthand for `--limit` with `-n` in `jj log`, `jj op log`
|
||||||
|
|
|
@ -35,7 +35,7 @@ use crate::cli_util::{
|
||||||
short_commit_hash, CommandHelper, RevisionArg, WorkspaceCommandHelper,
|
short_commit_hash, CommandHelper, RevisionArg, WorkspaceCommandHelper,
|
||||||
WorkspaceCommandTransaction,
|
WorkspaceCommandTransaction,
|
||||||
};
|
};
|
||||||
use crate::command_error::{user_error, CommandError};
|
use crate::command_error::{cli_error, user_error, CommandError};
|
||||||
use crate::ui::Ui;
|
use crate::ui::Ui;
|
||||||
|
|
||||||
/// Move revisions to different parent(s)
|
/// Move revisions to different parent(s)
|
||||||
|
@ -188,12 +188,16 @@ pub(crate) struct RebaseArgs {
|
||||||
)]
|
)]
|
||||||
insert_before: Vec<RevisionArg>,
|
insert_before: Vec<RevisionArg>,
|
||||||
|
|
||||||
|
/// Deprecated. Use --skip-emptied instead.
|
||||||
|
#[arg(long, conflicts_with = "revisions", hide = true)]
|
||||||
|
skip_empty: bool,
|
||||||
|
|
||||||
/// If true, when rebasing would produce an empty commit, the commit is
|
/// If true, when rebasing would produce an empty commit, the commit is
|
||||||
/// abandoned. It will not be abandoned if it was already empty before the
|
/// abandoned. It will not be abandoned if it was already empty before the
|
||||||
/// rebase. Will never skip merge commits with multiple non-empty
|
/// rebase. Will never skip merge commits with multiple non-empty
|
||||||
/// parents.
|
/// parents.
|
||||||
#[arg(long, conflicts_with = "revisions")]
|
#[arg(long, conflicts_with = "revisions")]
|
||||||
skip_empty: bool,
|
skip_emptied: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
|
@ -202,8 +206,14 @@ pub(crate) fn cmd_rebase(
|
||||||
command: &CommandHelper,
|
command: &CommandHelper,
|
||||||
args: &RebaseArgs,
|
args: &RebaseArgs,
|
||||||
) -> Result<(), CommandError> {
|
) -> Result<(), CommandError> {
|
||||||
|
if args.skip_empty {
|
||||||
|
return Err(cli_error(
|
||||||
|
"--skip-empty is deprecated, and has been renamed to --skip-emptied.",
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
let rebase_options = RebaseOptions {
|
let rebase_options = RebaseOptions {
|
||||||
empty: match args.skip_empty {
|
empty: match args.skip_emptied {
|
||||||
true => EmptyBehaviour::AbandonNewlyEmpty,
|
true => EmptyBehaviour::AbandonNewlyEmpty,
|
||||||
false => EmptyBehaviour::Keep,
|
false => EmptyBehaviour::Keep,
|
||||||
},
|
},
|
||||||
|
|
|
@ -1540,7 +1540,7 @@ commit. This is true in general; it is not specific to this command.
|
||||||
* `-B`, `--insert-before <INSERT_BEFORE>` — The revision(s) to insert before (can be repeated to create a merge commit)
|
* `-B`, `--insert-before <INSERT_BEFORE>` — The revision(s) to insert before (can be repeated to create a merge commit)
|
||||||
|
|
||||||
Only works with `-r`.
|
Only works with `-r`.
|
||||||
* `--skip-empty` — If true, when rebasing would produce an empty commit, the commit is abandoned. It will not be abandoned if it was already empty before the rebase. Will never skip merge commits with multiple non-empty parents
|
* `--skip-emptied` — If true, when rebasing would produce an empty commit, the commit is abandoned. It will not be abandoned if it was already empty before the rebase. Will never skip merge commits with multiple non-empty parents
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2236,7 +2236,7 @@ fn test_rebase_revisions_after_before() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_rebase_skip_empty() {
|
fn test_rebase_skip_emptied() {
|
||||||
let test_env = TestEnvironment::default();
|
let test_env = TestEnvironment::default();
|
||||||
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
test_env.jj_cmd_ok(test_env.env_root(), &["git", "init", "repo"]);
|
||||||
let repo_path = test_env.env_root().join("repo");
|
let repo_path = test_env.env_root().join("repo");
|
||||||
|
@ -2259,7 +2259,7 @@ fn test_rebase_skip_empty() {
|
||||||
◉
|
◉
|
||||||
"###);
|
"###);
|
||||||
|
|
||||||
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=b", "--skip-empty"]);
|
let (stdout, stderr) = test_env.jj_cmd_ok(&repo_path, &["rebase", "-d=b", "--skip-emptied"]);
|
||||||
insta::assert_snapshot!(stdout, @"");
|
insta::assert_snapshot!(stdout, @"");
|
||||||
insta::assert_snapshot!(stderr, @r###"
|
insta::assert_snapshot!(stderr, @r###"
|
||||||
Rebased 3 commits
|
Rebased 3 commits
|
||||||
|
|
Loading…
Reference in a new issue