Skip to content

Commit

Permalink
commands: add --interactive flag to jj split
Browse files Browse the repository at this point in the history
`jj split` with no arguments operates interactively, but I am nonetheless constantly running `jj split -i` because I expect an `--interactive` flag to exist for consistency.

However, `jj split <paths>` before this commit always operates non-interactively, so this commit has the nice practical effect that you can restrict your interactive splitting to a certain set of paths.
  • Loading branch information
arxanas committed Sep 25, 2023
1 parent 04d2217 commit 8f6958c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
* jj now bundles a TUI tool to use as the default diff and merge editors. (The
previous default was `meld`.)

* `jj split` supports the `--interactive` flag. (This is already the default if
no paths are provided.)

### Fixed bugs

## [0.9.0] - 2023-09-06
Expand Down
8 changes: 6 additions & 2 deletions cli/src/commands/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -877,10 +877,14 @@ struct DiffeditArgs {
/// asked for a description only for the first part.
#[derive(clap::Args, Clone, Debug)]
struct SplitArgs {
/// Interactively choose which parts to split. This is the default if no
/// paths are provided.
#[arg(long, short)]
interactive: bool,
/// The revision to split
#[arg(long, short, default_value = "@")]
revision: RevisionArg,
/// Put these paths in the first commit and don't run the diff editor
/// Put these paths in the first commit
#[arg(value_hint = clap::ValueHint::AnyPath)]
paths: Vec<String>,
}
Expand Down Expand Up @@ -3257,7 +3261,7 @@ fn cmd_split(ui: &mut Ui, command: &CommandHelper, args: &SplitArgs) -> Result<(
workspace_command.start_transaction(&format!("split commit {}", commit.id().hex()));
let end_tree = commit.tree()?;
let base_tree = merge_commit_trees(tx.repo(), &commit.parents())?;
let interactive = args.paths.is_empty();
let interactive = args.interactive || args.paths.is_empty();
let instructions = format!(
"\
You are splitting a commit in two: {}
Expand Down

0 comments on commit 8f6958c

Please sign in to comment.