view tests/test-server-view.t @ 49603:3eda36e9b3d6 stable

matcher: fix issues regex flag contained in pattern (issue6759) Python 3.11 is now enforcing that flag must be at the beginning of the regex This creates a serious regression for people using Python 3.11 with an hgignore using flag in a "relre" pattern. We now detect any flags in such pattern and "prepend" our ".*" pattern after them. In addition, we now insert the flag in the regexp to only affect the pattern we are rewriting. Otherwise, the regex built from the combined pattern would these flags in the middle of it anyway. As a side effect of this last change, we fix a bug… before this change regex flag in a pattern would affect all combined patterns. That was bad and is not longer the case. The Rust code needs to be updated to fix that very bug, but we will do it in another changeset.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 16 Nov 2022 13:05:01 +0100
parents cdf0e9523de1
children d24573181003
line wrap: on
line source

  $ hg init test
  $ cd test
  $ hg debugbuilddag '+2'
  $ hg phase --public 0

  $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
  $ cat hg.pid >> $DAEMON_PIDS
  $ cd ..
  $ hg init test2
  $ cd test2
  $ hg incoming http://foo:xyzzy@localhost:$HGPORT/
  comparing with http://foo:***@localhost:$HGPORT/
  changeset:   0:1ea73414a91b
  user:        debugbuilddag
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     r0
  
  changeset:   1:66f7d451a68b
  tag:         tip
  user:        debugbuilddag
  date:        Thu Jan 01 00:00:01 1970 +0000
  summary:     r1
  
  $ killdaemons.py

  $ cd ..
  $ hg -R test --config server.view=immutable serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
  $ cat hg.pid >> $DAEMON_PIDS
  $ hg -R test2 incoming http://foo:xyzzy@localhost:$HGPORT/
  comparing with http://foo:***@localhost:$HGPORT/
  changeset:   0:1ea73414a91b
  tag:         tip
  user:        debugbuilddag
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     r0
  

Check same result using `experimental.extra-filter-revs`

  $ hg -R test --config experimental.extra-filter-revs='not public()' serve -p $HGPORT1 -d --pid-file=hg2.pid -E errors.log
  $ cat hg2.pid >> $DAEMON_PIDS
  $ hg -R test2 incoming http://foo:xyzzy@localhost:$HGPORT1/
  comparing with http://foo:***@localhost:$HGPORT1/
  changeset:   0:1ea73414a91b
  tag:         tip
  user:        debugbuilddag
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     r0
  
  $ hg -R test --config experimental.extra-filter-revs='not public()' debugupdatecache
  $ ls -1 test/.hg/cache/
  branch2-base%89c45d2fa07e
  branch2-immutable%89c45d2fa07e
  branch2-served
  branch2-served%89c45d2fa07e
  branch2-served.hidden%89c45d2fa07e
  branch2-visible%89c45d2fa07e
  branch2-visible-hidden%89c45d2fa07e
  hgtagsfnodes1
  rbc-names-v1
  rbc-revs-v1
  tags2
  tags2-served%89c45d2fa07e

cleanup

  $ cat errors.log
  $ killdaemons.py