Mercurial > public > mercurial-scm > hg
comparison mercurial/context.py @ 42102:976f069e0ad6
overlayworkingctx: remove misleading trailing slash from directory pattern
The paths passed into the matcher are normalized (this applies to
include patterns and regular patterns, and to both glob kind and path
kind), so the regex for input "foo/" ended up being "foo(?:/|$)".
Once we have a (recursive) pattern kind only for directories, we could
switch to that here and remove the "mfiles[0] == path" check. Until
then, let's at least make it not misleading.
Differential Revision: https://phab.mercurial-scm.org/D6224
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 10 Apr 2019 17:36:37 -0700 |
parents | f4b1f5537d4c |
children | 5382d8f8530b |
comparison
equal
deleted
inserted
replaced
42101:f4b1f5537d4c | 42102:976f069e0ad6 |
---|---|
1952 if component in self: | 1952 if component in self: |
1953 fail(path, component) | 1953 fail(path, component) |
1954 | 1954 |
1955 # Test the other direction -- that this path from p2 isn't a directory | 1955 # Test the other direction -- that this path from p2 isn't a directory |
1956 # in p1 (test that p1 doesn't have any paths matching `path/*`). | 1956 # in p1 (test that p1 doesn't have any paths matching `path/*`). |
1957 match = self.match([path + '/'], default=b'path') | 1957 match = self.match([path], default=b'path') |
1958 matches = self.p1().manifest().matches(match) | 1958 matches = self.p1().manifest().matches(match) |
1959 mfiles = matches.keys() | 1959 mfiles = matches.keys() |
1960 if len(mfiles) > 0: | 1960 if len(mfiles) > 0: |
1961 if len(mfiles) == 1 and mfiles[0] == path: | 1961 if len(mfiles) == 1 and mfiles[0] == path: |
1962 return | 1962 return |