Mercurial > hg
annotate tests/test-convert-bzr-treeroot.t @ 29765:19578bb84731
extensions: add unwrapfunction to undo wrapfunction
Before this patch, we don't have a safe way to undo a wrapfunction because
other extensions may wrap the same function and calling setattr will undo
them accidentally.
This patch adds an "unwrapfunction" to address the issue. It removes the
wrapper from the wrapper chain, and re-wraps everything, which is not the
most efficient but short and easy to understand. We can revisit the code
if we have perf issues with long chains.
The "undo" feature is useful in cases like wrapping a function just in a
scope. Like, having a "select" command to interactively (using arrow keys)
select content from some output (ex. smartlog). It could wrap "ui.label" to
extract interesting texts just in the "select" command.
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 10 Aug 2016 16:27:33 +0100 |
parents | 89872688893f |
children | 75be14993fda |
rev | line source |
---|---|
26066
89872688893f
tests: move '#require bzr' into .t files
Gregory Szorc <gregory.szorc@gmail.com>
parents:
16913
diff
changeset
|
1 #require bzr |
7053 | 2 |
12517
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
3 $ . "$TESTDIR/bzr-definitions" |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
4 $ cat > treeset.py <<EOF |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
5 > import sys |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
6 > from bzrlib import workingtree |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
7 > wt = workingtree.WorkingTree.open('.') |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
8 > |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
9 > message, rootid = sys.argv[1:] |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
10 > wt.set_root_id('tree_root-%s' % rootid) |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
11 > wt.commit(message) |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
12 > EOF |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
13 |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
14 change the id of the tree root |
7053 | 15 |
12517
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
16 $ mkdir test-change-treeroot-id |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
17 $ cd test-change-treeroot-id |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
18 $ bzr init -q source |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
19 $ cd source |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
20 $ echo content > file |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
21 $ bzr add -q file |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
22 $ bzr commit -q -m 'Initial add' |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
23 $ python ../../treeset.py 'Changed root' new |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
24 $ cd .. |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
25 $ hg convert source source-hg |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
26 initializing destination source-hg repository |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
27 scanning source... |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
28 sorting... |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
29 converting... |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
30 1 Initial add |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
31 0 Changed root |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
32 $ manifest source-hg tip |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
33 % manifest of tip |
cc8f1083e8be
tests: unify test-convert-bzr-treeroot
Matt Mackall <mpm@selenic.com>
parents:
7058
diff
changeset
|
34 644 file |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12517
diff
changeset
|
35 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12517
diff
changeset
|
36 $ cd .. |