# HG changeset patch # User Arseniy Alekseyev # Date 2022-10-31 16:15:54 # Node ID 8076298b795a52a740de6c3ff9ca9af65653975a # Parent b51e5c2ab5fd38849003dbc3ad79040ba5781360 rhg: fallback to slow path on invalid patterns in hgignore diff --git a/rust/rhg/src/error.rs b/rust/rhg/src/error.rs --- a/rust/rhg/src/error.rs +++ b/rust/rhg/src/error.rs @@ -221,7 +221,12 @@ impl From<(RevlogError, &str)> for Comma impl From for CommandError { fn from(error: StatusError) -> Self { - CommandError::abort(format!("{}", error)) + match error { + StatusError::Pattern(_) => { + CommandError::unsupported(format!("{}", error)) + } + _ => CommandError::abort(format!("{}", error)), + } } } diff --git a/tests/test-hgignore.t b/tests/test-hgignore.t --- a/tests/test-hgignore.t +++ b/tests/test-hgignore.t @@ -59,36 +59,24 @@ Should display baz only: ? syntax $ echo "*.o" > .hgignore -#if no-rhg $ hg status abort: $TESTTMP/ignorerepo/.hgignore: invalid pattern (relre): *.o (glob) [255] -#endif -#if rhg - $ hg status - Unsupported syntax regex parse error: - ^(?:*.o) - ^ - error: repetition operator missing expression - [255] -#endif $ echo 're:^(?!a).*\.o$' > .hgignore -#if no-rhg $ hg status A dir/b.o ? .hgignore ? a.c ? a.o ? syntax -#endif #if rhg - $ hg status - Unsupported syntax regex parse error: + $ hg status --config rhg.on-unsupported=abort + unsupported feature: Unsupported syntax regex parse error: ^(?:^(?!a).*\.o$) ^^^ error: look-around, including look-ahead and look-behind, is not supported - [255] + [252] #endif Ensure given files are relative to cwd