tests/test-mq-caches.t
author Daniel Dumitriu <daniel.dumitriu@gmail.com>
Wed, 25 Aug 2010 12:20:10 +0200
changeset 12242 403bb6067736
parent 11897 0e4bbe18ff95
child 12156 4c94b6d0fb1c
permissions -rw-r--r--
i18n: merged in strings from hg cset ce818cf215dc

  $ branches=.hg/branchheads.cache
  $ echo '[extensions]' >> $HGRCPATH
  $ echo 'mq =' >> $HGRCPATH

  $ show_branch_cache()
  > {
  >     # force cache (re)generation
  >     hg log -r does-not-exist 2> /dev/null
  >     hg log -r tip --template 'tip: {rev}\n'
  >     if [ -f $branches ]; then
  >       sort $branches
  >     else
  >       echo No branch cache
  >     fi
  >     if [ "$1" = 1 ]; then
  >       for b in foo bar; do
  >         hg log -r $b --template "branch $b: "'{rev}\n'
  >       done
  >     fi
  > }

  $ hg init a
  $ cd a
  $ hg qinit -c


mq patch on an empty repo

  $ hg qnew p1
  $ show_branch_cache
  tip: 0
  No branch cache

  $ echo > pfile
  $ hg add pfile
  $ hg qrefresh -m 'patch 1'
  $ show_branch_cache
  tip: 0
  No branch cache

some regular revisions

  $ hg qpop
  popping p1
  patch queue now empty
  $ echo foo > foo
  $ hg add foo
  $ echo foo > .hg/branch
  $ hg ci -m 'branch foo' -d '1000000 0'

  $ echo bar > bar
  $ hg add bar
  $ echo bar > .hg/branch
  $ hg ci -m 'branch bar' -d '1000000 0'
  $ show_branch_cache
  tip: 1
  3f910abad313ff802d3a23a7529433872df9b3ae 1
  3f910abad313ff802d3a23a7529433872df9b3ae bar
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo

add some mq patches

  $ hg qpush
  applying p1
  now at: p1
  $ show_branch_cache
  tip: 2
  3f910abad313ff802d3a23a7529433872df9b3ae 1
  3f910abad313ff802d3a23a7529433872df9b3ae bar
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo

  $ hg qnew p2
  $ echo foo > .hg/branch
  $ echo foo2 >> foo
  $ hg qrefresh -m 'patch 2'
  $ show_branch_cache 1
  tip: 3
  3f910abad313ff802d3a23a7529433872df9b3ae 1
  3f910abad313ff802d3a23a7529433872df9b3ae bar
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
  branch foo: 3
  branch bar: 2

removing the cache

  $ rm $branches
  $ show_branch_cache 1
  tip: 3
  3f910abad313ff802d3a23a7529433872df9b3ae 1
  3f910abad313ff802d3a23a7529433872df9b3ae bar
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
  branch foo: 3
  branch bar: 2

importing rev 1 (the cache now ends in one of the patches)

  $ hg qimport -r 1 -n p0
  $ show_branch_cache 1
  tip: 3
  3f910abad313ff802d3a23a7529433872df9b3ae 1
  3f910abad313ff802d3a23a7529433872df9b3ae bar
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
  branch foo: 3
  branch bar: 2
  $ hg log -r qbase --template 'qbase: {rev}\n'
  qbase: 1

detect an invalid cache

  $ hg qpop -a
  popping p2
  popping p1
  popping p0
  patch queue now empty
  $ hg qpush -a
  applying p0
  applying p1
  applying p2
  now at: p2
  $ show_branch_cache
  tip: 3
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff 0
  9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo