# HG changeset patch # User Raphaël Gomès # Date 2022-03-18 16:39:06 # Node ID 6b31c0676147df5d84f6e484aaf1b037ec010d43 # Parent 4057563ebc6b0bcc992cbac2d59d079e4a5e60dd rhg: add support for ignoring all extensions Some workflows just want what `rhg` does and don't care about any extensions, this makes it easier. Differential Revision: https://phab.mercurial-scm.org/D12385 diff --git a/rust/rhg/src/main.rs b/rust/rhg/src/main.rs --- a/rust/rhg/src/main.rs +++ b/rust/rhg/src/main.rs @@ -643,6 +643,11 @@ const SUPPORTED_EXTENSIONS: &[&[u8]] = &[b"blackbox", b"share", b"sparse", b"narrow", b"*"]; fn check_extensions(config: &Config) -> Result<(), CommandError> { + if let Some(b"*") = config.get(b"rhg", b"ignored-extensions") { + // All extensions are to be ignored, nothing to do here + return Ok(()); + } + let enabled: HashSet<&[u8]> = config .get_section_keys(b"extensions") .into_iter() diff --git a/tests/test-rhg.t b/tests/test-rhg.t --- a/tests/test-rhg.t +++ b/tests/test-rhg.t @@ -391,3 +391,17 @@ The `:required` extension suboptions are $ echo "*:required = yes" >> $HGRCPATH $ rhg files a + +We can ignore all extensions at once + + $ echo "[extensions]" >> $HGRCPATH + $ echo "thisextensionbetternotexist=" >> $HGRCPATH + $ echo "thisextensionbetternotexisteither=" >> $HGRCPATH + $ $NO_FALLBACK rhg files + unsupported feature: extensions: thisextensionbetternotexist, thisextensionbetternotexisteither (consider adding them to 'rhg.ignored-extensions' config) + [252] + + $ echo "[rhg]" >> $HGRCPATH + $ echo "ignored-extensions=*" >> $HGRCPATH + $ $NO_FALLBACK rhg files + a