forked from mirrors/jj
commands: add -m to jj merge
and jj close
This commit is contained in:
parent
c459c61cdb
commit
37a2fbce65
1 changed files with 26 additions and 12 deletions
|
@ -184,6 +184,13 @@ fn rev_arg<'a, 'b>() -> Arg<'a, 'b> {
|
|||
.default_value("@")
|
||||
}
|
||||
|
||||
fn message_arg<'a, 'b>() -> Arg<'a, 'b> {
|
||||
Arg::with_name("message")
|
||||
.long("message")
|
||||
.short("m")
|
||||
.takes_value(true)
|
||||
}
|
||||
|
||||
fn op_arg<'a, 'b>() -> Arg<'a, 'b> {
|
||||
Arg::with_name("operation")
|
||||
.long("operation")
|
||||
|
@ -335,16 +342,12 @@ fn get_app<'a, 'b>() -> App<'a, 'b> {
|
|||
let describe_command = SubCommand::with_name("describe")
|
||||
.about("edit the commit description")
|
||||
.arg(rev_arg())
|
||||
.arg(
|
||||
Arg::with_name("message")
|
||||
.long("message")
|
||||
.short("m")
|
||||
.takes_value(true),
|
||||
)
|
||||
.arg(message_arg())
|
||||
.arg(Arg::with_name("stdin").long("stdin"));
|
||||
let close_command = SubCommand::with_name("close")
|
||||
.about("mark a commit closed, making new work go into a new commit")
|
||||
.arg(rev_arg());
|
||||
.arg(rev_arg())
|
||||
.arg(message_arg());
|
||||
let open_command = SubCommand::with_name("open")
|
||||
.about("mark a commit open, making new work be added to it")
|
||||
.arg(rev_arg());
|
||||
|
@ -394,7 +397,8 @@ fn get_app<'a, 'b>() -> App<'a, 'b> {
|
|||
.index(1)
|
||||
.required(true)
|
||||
.multiple(true),
|
||||
);
|
||||
)
|
||||
.arg(message_arg());
|
||||
let rebase_command = SubCommand::with_name("rebase")
|
||||
.about("move a commit to a different parent")
|
||||
.arg(rev_arg())
|
||||
|
@ -1246,10 +1250,15 @@ fn cmd_close(
|
|||
let commit = resolve_revision_arg(ui, mut_repo, sub_matches)?;
|
||||
let mut commit_builder =
|
||||
CommitBuilder::for_rewrite_from(ui.settings(), repo.store(), &commit).set_open(false);
|
||||
if commit.description().is_empty() {
|
||||
let description = edit_description(&repo, commit.description());
|
||||
commit_builder = commit_builder.set_description(description);
|
||||
let description;
|
||||
if sub_matches.is_present("message") {
|
||||
description = sub_matches.value_of("message").unwrap().to_string();
|
||||
} else if commit.description().is_empty() {
|
||||
description = edit_description(&repo, "");
|
||||
} else {
|
||||
description = commit.description().to_string();
|
||||
}
|
||||
commit_builder = commit_builder.set_description(description);
|
||||
let mut tx = repo.start_transaction(&format!("close commit {}", commit.id().hex()));
|
||||
commit_builder.write_to_transaction(&mut tx);
|
||||
update_checkout_after_rewrite(ui, &mut tx);
|
||||
|
@ -1562,7 +1571,12 @@ fn cmd_merge(
|
|||
parent_ids.push(commit.id().clone());
|
||||
commits.push(commit);
|
||||
}
|
||||
let description = edit_description(&repo, "");
|
||||
let description;
|
||||
if sub_matches.is_present("message") {
|
||||
description = sub_matches.value_of("message").unwrap().to_string();
|
||||
} else {
|
||||
description = edit_description(&repo, "");
|
||||
}
|
||||
let merged_tree = merge_commit_trees(repo.store(), &commits);
|
||||
let mut tx = repo.start_transaction("merge commits");
|
||||
CommitBuilder::for_new_commit(ui.settings(), repo.store(), merged_tree.id().clone())
|
||||
|
|
Loading…
Reference in a new issue