Mercurial > public > mercurial-scm > hg
diff rust/rhg/src/commands/status.rs @ 52341:c2814b698df8
rhg: support rhg status --no-copies
This makes `rhg st --rev A --rev B --no-copies` work without fallback to
Python, where previously `--config ui.statuscopies=False` was necessary.
author | Mitchell Kember <mkember@janestreet.com> |
---|---|
date | Mon, 25 Nov 2024 15:34:58 -0500 |
parents | 22d24f6d6411 |
children | 53dc147bc8b0 |
line wrap: on
line diff
--- a/rust/rhg/src/commands/status.rs Sat Nov 30 17:13:54 2024 -0500 +++ b/rust/rhg/src/commands/status.rs Mon Nov 25 15:34:58 2024 -0500 @@ -122,6 +122,12 @@ .long("copies"), ) .arg( + Arg::new("no-copies") + .action(clap::ArgAction::SetTrue) + .long("no-copies") + .overrides_with("copies"), + ) + .arg( Arg::new("print0") .help("end filenames with NUL, for use with xargs") .short('0') @@ -292,9 +298,14 @@ } }; let no_status = args.get_flag("no-status"); - let list_copies = all - || args.get_flag("copies") - || config.get_bool(b"ui", b"statuscopies")?; + let list_copies = if args.get_flag("copies") { + true + } else if args.get_flag("no-copies") { + false + } else { + config.get_bool(b"ui", b"statuscopies")? + }; + let list_copies = list_copies || all; let repo = invocation.repo?; let revpair = parse_revpair(repo, revs.map(|i| i.cloned().collect()))?;