Mercurial > hg-stable
changeset 37811:51dee6fad783 stable
infinitepush: ensure fileindex bookmarks use '/' separators (issue5840)
After loading up with status messages, I noticed that the subsequent matcher was
rejecting 'scratch\mybranch' on Windows. No bookmarks were reported back, and
the tests subsequently failed. I did a search for 'match', and nothing else
looks like it needs to be fixed up, but someone who understands this code should
also take a look.
I also tried setting `infinitepush.branchpattern=re:scratch\\.*` in
library-infinitepush.sh without this change, but that didn't work. Still,
should we ban '\' in these bookmarks to avoid confusion? I thought I saw code
that sandwiches a pattern between 're:^' and '.*', so perhaps regex characters
will need special care?
I also noticed comments in externalbundlestore.{read,write} that it won't work
on Windows because of opening an open file. But I don't see a test failure, so
this may lack test coverage.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 23 Apr 2018 23:22:52 -0400 |
parents | 856f381ad74b |
children | 91b717e2cafa |
files | hgext/infinitepush/fileindexapi.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/infinitepush/fileindexapi.py Sun Apr 22 11:54:10 2018 -0700 +++ b/hgext/infinitepush/fileindexapi.py Mon Apr 23 23:22:52 2018 -0400 @@ -15,6 +15,8 @@ import os +from mercurial import util + from mercurial.utils import stringutil from . import indexapi @@ -82,6 +84,7 @@ for dirpath, _, books in self._repo.vfs.walk(self._bookmarkmap): for book in books: bookmark = os.path.join(dirpath, book)[prefixlen:] + bookmark = util.pconvert(bookmark) if not matcher(bookmark): continue yield bookmark, self._read(os.path.join(dirpath, book))