# HG changeset patch # User Raphaël Gomès # Date 1630510911 -7200 # Node ID f11f233546ce7f98054e11033c9974b71d972bdd # Parent 4a6fa6b6f0794219582afb9c574d690c8960afce rhg: fallback if the current command has any generic hook defined We do not handle hooks yet. Differential Revision: https://phab.mercurial-scm.org/D11380 diff -r 4a6fa6b6f079 -r f11f233546ce rust/rhg/src/main.rs --- a/rust/rhg/src/main.rs Wed Sep 01 17:41:08 2021 +0200 +++ b/rust/rhg/src/main.rs Wed Sep 01 17:41:51 2021 +0200 @@ -68,6 +68,17 @@ let matches = app.clone().get_matches_safe()?; let (subcommand_name, subcommand_matches) = matches.subcommand(); + + for prefix in ["pre", "post", "fail"].iter() { + // Mercurial allows users to define generic hooks for commands, + // fallback if any are detected + let item = format!("{}-{}", prefix, subcommand_name); + let hook_for_command = config.get_str(b"hooks", item.as_bytes())?; + if hook_for_command.is_some() { + let msg = format!("{}-{} hook defined", prefix, subcommand_name); + return Err(CommandError::unsupported(msg)); + } + } let run = subcommand_run_fn(subcommand_name) .expect("unknown subcommand name from clap despite AppSettings::SubcommandRequired"); let subcommand_args = subcommand_matches diff -r 4a6fa6b6f079 -r f11f233546ce tests/test-rhg.t --- a/tests/test-rhg.t Wed Sep 01 17:41:08 2021 +0200 +++ b/tests/test-rhg.t Wed Sep 01 17:41:51 2021 +0200 @@ -215,6 +215,19 @@ unsupported feature: fileset [252] +Fallback with generic hooks + $ $NO_FALLBACK rhg cat original --config hooks.pre-cat=something + unsupported feature: pre-cat hook defined + [252] + + $ $NO_FALLBACK rhg cat original --config hooks.post-cat=something + unsupported feature: post-cat hook defined + [252] + + $ $NO_FALLBACK rhg cat original --config hooks.fail-cat=something + unsupported feature: fail-cat hook defined + [252] + Requirements $ $NO_FALLBACK rhg debugrequirements dotencode