mq: drop `_cacheabletip` usage
Strip have dedicated work around to solve the same problem, strip is even a
fraction faster without that thanks to simpler update process of the branchcache.
--- a/hgext/mq.py Fri Dec 28 02:34:32 2012 +0100
+++ b/hgext/mq.py Fri Dec 28 03:42:21 2012 +0100
@@ -3469,26 +3469,6 @@
return result
- def _cacheabletip(self):
- q = self.mq
- cl = self.changelog
- qbase = None
- if not q.applied:
- if getattr(self, '_committingpatch', False):
- # Committing a new patch, must be tip
- qbase = len(cl) - 1
- else:
- qbasenode = q.applied[0].node
- try:
- qbase = self.unfiltered().changelog.rev(qbasenode)
- except error.LookupError:
- self.ui.warn(_('mq status file refers to unknown node %s\n')
- % short(qbasenode))
- ret = super(mqrepo, self)._cacheabletip()
- if qbase is not None:
- ret = min(qbase - 1, ret)
- return ret
-
if repo.local():
repo.__class__ = mqrepo
--- a/tests/test-mq-caches.t Fri Dec 28 02:34:32 2012 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
- $ branches=.hg/cache/branchheads
- $ 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 -d '0 0' p1
- $ show_branch_cache
- tip: 0
- No branch cache
-
- $ echo > pfile
- $ hg add pfile
- $ hg qrefresh -m 'patch 1'
- $ show_branch_cache
- tip: 0
- d986d5caac23a7d44a46efc0ddaf5eb9665844cf 0
- d986d5caac23a7d44a46efc0ddaf5eb9665844cf default
-
-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'
-
- $ echo bar > bar
- $ hg add bar
- $ echo bar > .hg/branch
- $ hg ci -m 'branch bar'
- $ show_branch_cache
- tip: 1
- c229711f16da3d7591f89b1b8d963b79bda22714 1
- c229711f16da3d7591f89b1b8d963b79bda22714 bar
- dc25e3827021582e979f600811852e36cbe57341 foo
-
-add some mq patches
-
- $ hg qpush
- applying p1
- now at: p1
- $ show_branch_cache
- tip: 2
- c229711f16da3d7591f89b1b8d963b79bda22714 1
- c229711f16da3d7591f89b1b8d963b79bda22714 bar
- dc25e3827021582e979f600811852e36cbe57341 foo
-
- $ hg qnew -d '0 0' p2
- $ echo foo > .hg/branch
- $ echo foo2 >> foo
- $ hg qrefresh -m 'patch 2'
- $ show_branch_cache 1
- tip: 3
- 982611f6955f9c48d3365decea203217c945ef0d 2
- 982611f6955f9c48d3365decea203217c945ef0d bar
- dc25e3827021582e979f600811852e36cbe57341 foo
- branch foo: 3
- branch bar: 2
-
-removing the cache
-
- $ rm $branches
- $ show_branch_cache 1
- tip: 3
- c229711f16da3d7591f89b1b8d963b79bda22714 1
- c229711f16da3d7591f89b1b8d963b79bda22714 bar
- dc25e3827021582e979f600811852e36cbe57341 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
- c229711f16da3d7591f89b1b8d963b79bda22714 1
- c229711f16da3d7591f89b1b8d963b79bda22714 bar
- dc25e3827021582e979f600811852e36cbe57341 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
- dc25e3827021582e979f600811852e36cbe57341 0
- dc25e3827021582e979f600811852e36cbe57341 foo
-
- $ cd ..
--- a/tests/test-mq-qpush-fail.t Fri Dec 28 02:34:32 2012 +0100
+++ b/tests/test-mq-qpush-fail.t Fri Dec 28 03:42:21 2012 +0100
@@ -61,7 +61,6 @@
patch queue now empty
$ cp .hg/patches/status.orig .hg/patches/status
$ hg qpush
- mq status file refers to unknown node * (glob)
abort: working directory revision is not qtip
[255]
$ rm .hg/patches/status .hg/patches/status.orig