Skip to content

Commit

Permalink
command: add --interactive flag to jj commit
Browse files Browse the repository at this point in the history
  • Loading branch information
arxanas committed Aug 22, 2023
1 parent 1af3ca1 commit 3f10e70
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion cli/src/commands/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,9 @@ struct DescribeArgs {
#[derive(clap::Args, Clone, Debug)]
#[command(visible_aliases=&["ci"])]
struct CommitArgs {
/// Interactively choose which changes to commit
#[arg(short, long)]
interactive: bool,
/// The change description to use (don't open editor)
#[arg(long = "message", short, value_name = "MESSAGE")]
message_paragraphs: Vec<String>,
Expand Down Expand Up @@ -2046,6 +2049,7 @@ fn cmd_describe(
#[instrument(skip_all)]
fn cmd_commit(ui: &mut Ui, command: &CommandHelper, args: &CommitArgs) -> Result<(), CommandError> {
let CommitArgs {
interactive,
message_paragraphs,
paths,
} = args;
Expand All @@ -2060,7 +2064,24 @@ fn cmd_commit(ui: &mut Ui, command: &CommandHelper, args: &CommitArgs) -> Result
let matcher = workspace_command.matcher_from_values(paths)?;
let mut tx = workspace_command.start_transaction(&format!("commit {}", commit.id().hex()));
let base_tree = merge_commit_trees(tx.repo(), &commit.parents())?;
let tree_id = tx.select_diff(ui, &base_tree, &commit.tree(), matcher.as_ref(), "", false)?;
let instructions = format!(
"\
You are making a partial commit from the changes in: {}
The diff initially shows all changes. Adjust the right side until it shows the
contents you want for the new commit. The remainder will stay in the working
copy.
",
tx.format_commit_summary(&commit)
);
let tree_id = tx.select_diff(
ui,
&base_tree,
&commit.tree(),
matcher.as_ref(),
&instructions,
*interactive,
)?;
let middle_tree = tx.repo().store().get_tree(&RepoPath::root(), &tree_id)?;
if !paths.is_empty() && middle_tree.id() == base_tree.id() {
writeln!(
Expand Down

0 comments on commit 3f10e70

Please sign in to comment.