diff -r 9cf807501e27 -r a7669e7b0355 mercurial/narrowspec.py --- a/mercurial/narrowspec.py Thu Jan 16 17:06:15 2025 +0100 +++ b/mercurial/narrowspec.py Fri Jan 10 12:40:42 2025 +0000 @@ -68,6 +68,16 @@ if _numlines(pat) > 1: raise error.Abort(_(b'newlines are not allowed in narrowspec paths')) + # patterns are stripped on load (see sparse.parseconfig), + # so a pattern ending in whitespace doesn't work correctly + if pat.strip() != pat: + raise error.Abort( + _( + b'leading or trailing whitespace is not allowed ' + b'in narrowspec paths' + ) + ) + components = pat.split(b'/') if b'.' in components or b'..' in components: raise error.Abort(