tests/test-server-view.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Sat, 06 Apr 2019 17:46:19 +0200
changeset 42231 d345627d104b
parent 42106 bcf59ddc6173
child 42238 32338e27bb9d
permissions -rw-r--r--
repoview: introduce a `experimental.extra-filter-revs` config The option define revisions to additionally filter out of all repository "view". The end goal is to provide and easy to way to serve multiple subset of the same repository using multiple "shares". The simplest use case of this feature is to have one view serving the public changesets and one view also serving the draft. This is currently achievable using the new `server.view` option introduced recently by Joerg Sonnenberger. However, more advanced use cases need more advanced definitions. For example some needs a view dedicated to some release branches, or view that hides security fixes to be released. Joerg Sonnenberger and I discussed this topic at the recent mini-sprint and the both of us have seen real life use cases for this. (This series got written during the same mini-sprint). The feature is fully functional, and use similar cache-fallback mechanism to ensure decent performance. However,there remaining room to ensure each share caches and hooks collaborate with each others. This will come at a later time once users start to actually test this feature on real usecase.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41840
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     1
  $ hg init test
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     2
  $ cd test
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     3
  $ hg debugbuilddag '+2'
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     4
  $ hg phase --public 0
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     5
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     6
  $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     7
  $ cat hg.pid >> $DAEMON_PIDS
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     8
  $ cd ..
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     9
  $ hg init test2
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    10
  $ cd test2
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    11
  $ hg incoming http://foo:xyzzy@localhost:$HGPORT/
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    12
  comparing with http://foo:***@localhost:$HGPORT/
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    13
  changeset:   0:1ea73414a91b
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    14
  user:        debugbuilddag
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    15
  date:        Thu Jan 01 00:00:00 1970 +0000
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    16
  summary:     r0
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    17
  
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    18
  changeset:   1:66f7d451a68b
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    19
  tag:         tip
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    20
  user:        debugbuilddag
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    21
  date:        Thu Jan 01 00:00:01 1970 +0000
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    22
  summary:     r1
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    23
  
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    24
  $ killdaemons.py
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    25
42106
bcf59ddc6173 test: minor cleanup to test-server-view.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41840
diff changeset
    26
  $ cd ..
bcf59ddc6173 test: minor cleanup to test-server-view.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41840
diff changeset
    27
  $ hg -R test --config server.view=immutable serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
41840
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    28
  $ cat hg.pid >> $DAEMON_PIDS
42106
bcf59ddc6173 test: minor cleanup to test-server-view.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41840
diff changeset
    29
  $ hg -R test2 incoming http://foo:xyzzy@localhost:$HGPORT/
41840
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    30
  comparing with http://foo:***@localhost:$HGPORT/
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    31
  changeset:   0:1ea73414a91b
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    32
  tag:         tip
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    33
  user:        debugbuilddag
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    34
  date:        Thu Jan 01 00:00:00 1970 +0000
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    35
  summary:     r0
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    36
  
42231
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    37
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    38
Check same result using `experimental.extra-filter-revs`
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    39
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    40
  $ hg -R test --config experimental.extra-filter-revs='not public()' serve -p $HGPORT1 -d --pid-file=hg2.pid -E errors.log
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    41
  $ cat hg2.pid >> $DAEMON_PIDS
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    42
  $ hg -R test2 incoming http://foo:xyzzy@localhost:$HGPORT1/
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    43
  comparing with http://foo:***@localhost:$HGPORT1/
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    44
  changeset:   0:1ea73414a91b
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    45
  tag:         tip
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    46
  user:        debugbuilddag
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    47
  date:        Thu Jan 01 00:00:00 1970 +0000
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    48
  summary:     r0
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    49
  
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    50
  $ hg -R test --config experimental.extra-filter-revs='not public()' debugupdatecache
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    51
  $ ls -1 test/.hg/cache/
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    52
  branch2-base%89c45d2fa07e
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    53
  branch2-served
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    54
  rbc-names-v1
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    55
  rbc-revs-v1
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    56
  tags2
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    57
  tags2-served%89c45d2fa07e
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    58
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    59
cleanup
d345627d104b repoview: introduce a `experimental.extra-filter-revs` config
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42106
diff changeset
    60
42106
bcf59ddc6173 test: minor cleanup to test-server-view.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41840
diff changeset
    61
  $ cat errors.log
41840
d6569f1e9b37 server: allow customizing the default repo filter
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
    62
  $ killdaemons.py