# HG changeset patch # User Simon Sapin # Date 1636482493 -3600 # Node ID d71b9902e2de27cd6bebabda1d75305d2411ffc2 # Parent a2e278b5e2655d551e02b66175a651ab81178667 rhg: Colored output is not supported Fallback if it is requested explicitly. The default is documented as use color "whenever it seems possible". rhg proceeds without color in that case. Differential Revision: https://phab.mercurial-scm.org/D11762 diff -r a2e278b5e265 -r d71b9902e2de rust/rhg/src/main.rs --- a/rust/rhg/src/main.rs Tue Nov 09 19:09:57 2021 +0100 +++ b/rust/rhg/src/main.rs Tue Nov 09 19:28:13 2021 +0100 @@ -28,7 +28,7 @@ repo: Result<&Repo, &NoRepoInCwdError>, config: &Config, ) -> Result<(), CommandError> { - check_unsupported(config)?; + check_unsupported(config, ui)?; let app = App::new("rhg") .global_setting(AppSettings::AllowInvalidUtf8) @@ -617,7 +617,10 @@ } } -fn check_unsupported(config: &Config) -> Result<(), CommandError> { +fn check_unsupported( + config: &Config, + ui: &ui::Ui, +) -> Result<(), CommandError> { check_extensions(config)?; if std::env::var_os("HG_PENDING").is_some() { @@ -634,5 +637,11 @@ Err(CommandError::unsupported("[decode] config"))? } + if let Some(color) = config.get(b"ui", b"color") { + if (color == b"always" || color == b"debug") && !ui.plain() { + Err(CommandError::unsupported("colored output"))? + } + } + Ok(()) } diff -r a2e278b5e265 -r d71b9902e2de tests/test-status-color.t --- a/tests/test-status-color.t Tue Nov 09 19:09:57 2021 +0100 +++ b/tests/test-status-color.t Tue Nov 09 19:28:13 2021 +0100 @@ -1,7 +1,3 @@ -TODO: fix rhg bugs that make this test fail when status is enabled - $ unset RHG_STATUS - - $ cat <> $HGRCPATH > [ui] > color = always