Skip to content
/ jj Public
forked from martinvonz/jj

Commit

Permalink
cli: deprecate branch delete/forget --glob option in favor of glob: s…
Browse files Browse the repository at this point in the history
…yntax

I'm not going to remove --glob anytime soon, but I won't add --glob option to
new commands.
  • Loading branch information
yuja committed Oct 21, 2023
1 parent c3f167e commit 8dbe12d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 7 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
revsets now support glob matching.

* `jj branch delete`/`forget` now support [string pattern
syntax](docs/revsets.md#string-patterns).
syntax](docs/revsets.md#string-patterns). The `--glob` option is deprecated in
favor of `glob:` pattern.

### Fixed bugs

Expand Down
20 changes: 16 additions & 4 deletions cli/src/commands/branch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ pub struct BranchDeleteArgs {
#[arg(required_unless_present_any(&["glob"]), value_parser = parse_name_pattern)]
pub names: Vec<StringPattern>,

/// A glob pattern indicating branches to delete.
#[arg(long, value_parser = StringPattern::glob)]
/// Deprecated. Please prefix the pattern with `glob:` instead.
#[arg(long, hide = true, value_parser = StringPattern::glob)]
pub glob: Vec<StringPattern>,
}

Expand Down Expand Up @@ -107,8 +107,8 @@ pub struct BranchForgetArgs {
#[arg(required_unless_present_any(&["glob"]), value_parser = parse_name_pattern)]
pub names: Vec<StringPattern>,

/// A glob pattern indicating branches to forget.
#[arg(long, value_parser = StringPattern::glob)]
/// Deprecated. Please prefix the pattern with `glob:` instead.
#[arg(long, hide = true, value_parser = StringPattern::glob)]
pub glob: Vec<StringPattern>,
}

Expand Down Expand Up @@ -347,6 +347,12 @@ fn cmd_branch_delete(
) -> Result<(), CommandError> {
let mut workspace_command = command.workspace_helper(ui)?;
let view = workspace_command.repo().view();
if !args.glob.is_empty() {
writeln!(
ui.warning(),
"--glob has been deprecated. Please prefix the pattern with `glob:` instead."
)?;
}
let name_patterns = [&args.names[..], &args.glob[..]].concat();
let names = find_local_branches(view, &name_patterns)?;
let mut tx =
Expand All @@ -369,6 +375,12 @@ fn cmd_branch_forget(
) -> Result<(), CommandError> {
let mut workspace_command = command.workspace_helper(ui)?;
let view = workspace_command.repo().view();
if !args.glob.is_empty() {
writeln!(
ui.warning(),
"--glob has been deprecated. Please prefix the pattern with `glob:` instead."
)?;
}
let name_patterns = [&args.names[..], &args.glob[..]].concat();
let names = find_forgettable_branches(view, &name_patterns)?;
let mut tx =
Expand Down
12 changes: 10 additions & 2 deletions cli/tests/test_branch_command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ fn test_branch_forget_glob() {
test_env.jj_cmd_ok(&repo_path, &["branch", "forget", "--glob", "foo-[1-3]"]);
insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
Forgot 2 branches.
"###);
test_env.jj_cmd_ok(&repo_path, &["undo"]);
Expand All @@ -119,7 +120,9 @@ fn test_branch_forget_glob() {
&["branch", "forget", "foo-4", "--glob", "foo-*", "glob:foo-*"],
);
insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @"");
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
"###);
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
@ bar-2 230dd059e1b0
◉ 000000000000
Expand All @@ -139,6 +142,7 @@ fn test_branch_forget_glob() {
&["branch", "forget", "glob:bar*", "glob:baz*", "--glob=boom*"],
);
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
Error: No matching branches for patterns: baz*, boom*
"###);
}
Expand Down Expand Up @@ -177,6 +181,7 @@ fn test_branch_delete_glob() {
test_env.jj_cmd_ok(&repo_path, &["branch", "delete", "--glob", "foo-[1-3]"]);
insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
Deleted 2 branches.
"###);
test_env.jj_cmd_ok(&repo_path, &["undo"]);
Expand All @@ -194,6 +199,7 @@ fn test_branch_delete_glob() {
// forget`, it's not allowed to delete already deleted branches.
let stderr = test_env.jj_cmd_failure(&repo_path, &["branch", "delete", "--glob=foo-[1-3]"]);
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
Error: No matching branches for patterns: foo-[1-3]
"###);

Expand All @@ -204,7 +210,9 @@ fn test_branch_delete_glob() {
&["branch", "delete", "foo-4", "--glob", "foo-*", "glob:foo-*"],
);
insta::assert_snapshot!(stdout, @"");
insta::assert_snapshot!(stderr, @"");
insta::assert_snapshot!(stderr, @r###"
--glob has been deprecated. Please prefix the pattern with `glob:` instead.
"###);
insta::assert_snapshot!(get_log_output(&test_env, &repo_path), @r###"
@ bar-2 foo-1@origin foo-3@origin foo-4@origin 6fbf398c2d59
◉ 000000000000
Expand Down

0 comments on commit 8dbe12d

Please sign in to comment.