view tests/test-obsolete-push.t @ 1362:73e5b5280c1c

inhibit: improve performance of transaction wrapping Before this patch, transaction wrapping was the most expensive part of inhibit computation wise. This patch changes the revset that we use in the transaction wrapping to make it ~50x faster to compute: revset #0: obsolete() - hidden() 0) wall 0.000214 comb 0.000000 user 0.000000 sys 0.000000 (best of 11209) vs revset #0: (not hidden()) and obsolete() 0) wall 0.010965 comb 0.010000 user 0.010000 sys 0.000000 (best of 237)
author Laurent Charignon <lcharignon@fb.com>
date Sat, 13 Jun 2015 11:14:27 -0700
parents cc3e68120185
children 7463f5880ce9
line wrap: on
line source

  $ cat >> $HGRCPATH <<EOF
  > [defaults]
  > amend=-d "0 0"
  > [extensions]
  > hgext.graphlog=
  > EOF
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH

  $ template='{rev}:{node|short}@{branch}({obsolete}/{phase}) {desc|firstline}\n'
  $ glog() {
  >   hg glog --template "$template" "$@"
  > }

Test outgoing, common A is suspended, B unstable and C secret, remote
has A and B, neither A or C should be in outgoing.

  $ hg init source
  $ cd source
  $ echo a > a
  $ hg ci -qAm A a
  $ echo b > b
  $ hg ci -qAm B b
  $ hg up 0
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo c > c
  $ hg ci -qAm C c
  $ hg phase --secret --force .
  $ hg kill 0 1
  2 changesets pruned
  1 new unstable changesets
  $ glog --hidden
  @  2:244232c2222a@default(unstable/secret) C
  |
  | x  1:6c81ed0049f8@default(extinct/draft) B
  |/
  x  0:1994f17a630e@default(suspended/draft) A
  
  $ hg init ../clone
  $ cat >  ../clone/.hg/hgrc <<EOF
  > [phases]
  > publish = false
  > EOF
  $ hg outgoing ../clone --template "$template"
  comparing with ../clone
  searching for changes
  0:1994f17a630e@default(suspended/draft) A