forked from mirrors/jj
cli: require at least one path for jj untrack
It seems very unlikely that the user would want to untrack all paths (that's still possible with `jj untrack .`, if they really want to, and have added all their current paths to the `.gitignore`).
This commit is contained in:
parent
88e34d703e
commit
9a15e32351
3 changed files with 15 additions and 0 deletions
|
@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
* Errors are now printed to stderr (they used to be printed to stdout).
|
||||
|
||||
* `jj untrack` now requires at least one path (allowing no arguments was a UX
|
||||
bug).
|
||||
|
||||
## [0.4.0] - 2022-04-02
|
||||
|
||||
### Breaking changes
|
||||
|
|
|
@ -1001,6 +1001,7 @@ struct CheckoutArgs {
|
|||
/// Stop tracking specified paths in the working copy
|
||||
#[derive(clap::Args, Clone, Debug)]
|
||||
struct UntrackArgs {
|
||||
#[clap(required = true, min_values = 1)]
|
||||
paths: Vec<String>,
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,17 @@ fn test_untrack() {
|
|||
std::fs::write(repo_path.join(".gitignore"), "*.bak\n").unwrap();
|
||||
let files_before = test_env.jj_cmd_success(&repo_path, &["files"]);
|
||||
|
||||
// Errors out when no path is specified
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["untrack"]);
|
||||
insta::assert_snapshot!(stderr.replace("jj.exe", "jj"), @r###"
|
||||
error: The following required arguments were not provided:
|
||||
<PATHS>...
|
||||
|
||||
USAGE:
|
||||
jj untrack [OPTIONS] <PATHS>...
|
||||
|
||||
For more information try --help
|
||||
"###);
|
||||
// Errors out when a specified file is not ignored
|
||||
let stderr = test_env.jj_cmd_failure(&repo_path, &["untrack", "file1", "file1.bak"]);
|
||||
insta::assert_snapshot!(stderr, @"Error: 'file1' would be added back because it's not ignored. Make sure it's ignored, \
|
||||
|
|
Loading…
Reference in a new issue