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.
Source bundle was generated with the following script:
# hg init
# echo a > a
# ln -s a l
# hg ci -Ama -d'0 0'
# mkdir b
# echo a > b/a
# chmod +x b/a
# hg ci -Amb -d'1 0'
$ hg init
$ hg unbundle "$TESTDIR/bundles/test-manifest.hg"
adding changesets
adding manifests
adding file changes
added 2 changesets with 3 changes to 3 files
new changesets b73562a03cfe:5bdc995175ba
(run 'hg update' to get a working copy)
The next call is expected to return nothing:
$ hg manifest
$ hg co
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg manifest
a
b/a
l
$ hg files -vr .
2 a
2 x b/a
1 l l
$ hg files -r . -X b
a
l
$ hg manifest -v
644 a
755 * b/a
644 @ l
$ hg manifest --debug
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 755 * b/a
047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 644 @ l
$ hg manifest -r 0
a
l
$ hg manifest -r 1
a
b/a
l
$ hg manifest -r tip
a
b/a
l
$ hg manifest tip
a
b/a
l
$ hg manifest --all
a
b/a
l
The next two calls are expected to abort:
$ hg manifest -r 2
abort: unknown revision '2'!
[255]
$ hg manifest -r tip tip
abort: please specify just one revision
[255]