##// END OF EJS Templates
tests: silence test-repo obsolete warning...
timeless -
r29219:3c9066ed default
parent child Browse files
Show More
@@ -0,0 +1,19
1 # The test-repo is a live hg repository which may have evolution
2 # markers created, e.g. when a ~/.hgrc enabled evolution.
3 #
4 # Tests are run using a custom HGRCPATH, which do not
5 # enable evolution markers by default.
6 #
7 # If test-repo includes evolution markers, and we do not
8 # enable evolution markers, hg will occasionally complain
9 # when it notices them, which disrupts tests resulting in
10 # sporadic failures.
11 #
12 # Since we aren't performing any write operations on the
13 # test-repo, there's no harm in telling hg that we support
14 # evolution markers, which is what the following lines
15 # for the hgrc file do:
16 cat >> $HGRCPATH << EOF
17 [experimental]
18 evolution=createmarkers
19 EOF
@@ -1,19 +1,20
1 #require test-repo
1 #require test-repo
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ check_code="$TESTDIR"/../contrib/check-code.py
4 $ check_code="$TESTDIR"/../contrib/check-code.py
4 $ cd "$TESTDIR"/..
5 $ cd "$TESTDIR"/..
5
6
6 New errors are not allowed. Warnings are strongly discouraged.
7 New errors are not allowed. Warnings are strongly discouraged.
7 (The writing "no-che?k-code" is for not skipping this file when checking.)
8 (The writing "no-che?k-code" is for not skipping this file when checking.)
8
9
9 $ hg locate | sed 's-\\-/-g' |
10 $ hg locate | sed 's-\\-/-g' |
10 > xargs "$check_code" --warnings --per-file=0 || false
11 > xargs "$check_code" --warnings --per-file=0 || false
11 Skipping hgext/fsmonitor/pywatchman/__init__.py it has no-che?k-code (glob)
12 Skipping hgext/fsmonitor/pywatchman/__init__.py it has no-che?k-code (glob)
12 Skipping hgext/fsmonitor/pywatchman/bser.c it has no-che?k-code (glob)
13 Skipping hgext/fsmonitor/pywatchman/bser.c it has no-che?k-code (glob)
13 Skipping hgext/fsmonitor/pywatchman/capabilities.py it has no-che?k-code (glob)
14 Skipping hgext/fsmonitor/pywatchman/capabilities.py it has no-che?k-code (glob)
14 Skipping hgext/fsmonitor/pywatchman/msc_stdint.h it has no-che?k-code (glob)
15 Skipping hgext/fsmonitor/pywatchman/msc_stdint.h it has no-che?k-code (glob)
15 Skipping hgext/fsmonitor/pywatchman/pybser.py it has no-che?k-code (glob)
16 Skipping hgext/fsmonitor/pywatchman/pybser.py it has no-che?k-code (glob)
16 Skipping i18n/polib.py it has no-che?k-code (glob)
17 Skipping i18n/polib.py it has no-che?k-code (glob)
17 Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob)
18 Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob)
18 Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob)
19 Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob)
19 Skipping mercurial/httpclient/socketutil.py it has no-che?k-code (glob)
20 Skipping mercurial/httpclient/socketutil.py it has no-che?k-code (glob)
@@ -1,24 +1,21
1 #require test-repo
1 #require test-repo
2
2
3 Enable obsolescence to avoid the warning issue when obsmarker are found
3 Enable obsolescence to avoid the warning issue when obsmarker are found
4
4
5 $ cat >> $HGRCPATH << EOF
5 $ . "$TESTDIR/helpers-testrepo.sh"
6 > [experimental]
7 > evolution=createmarkers
8 > EOF
9
6
10 Go back in the hg repo
7 Go back in the hg repo
11
8
12 $ cd $TESTDIR/..
9 $ cd $TESTDIR/..
13
10
14 $ for node in `hg log --rev 'not public() and ::.' --template '{node|short}\n'`; do
11 $ for node in `hg log --rev 'not public() and ::.' --template '{node|short}\n'`; do
15 > hg export $node | contrib/check-commit > ${TESTTMP}/check-commit.out
12 > hg export $node | contrib/check-commit > ${TESTTMP}/check-commit.out
16 > if [ $? -ne 0 ]; then
13 > if [ $? -ne 0 ]; then
17 > echo "Revision $node does not comply with rules"
14 > echo "Revision $node does not comply with rules"
18 > echo '------------------------------------------------------'
15 > echo '------------------------------------------------------'
19 > cat ${TESTTMP}/check-commit.out
16 > cat ${TESTTMP}/check-commit.out
20 > echo
17 > echo
21 > fi
18 > fi
22 > done
19 > done
23
20
24
21
@@ -1,8 +1,9
1 #require test-repo
1 #require test-repo
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ cd "$TESTDIR"/..
4 $ cd "$TESTDIR"/..
4
5
5 New errors are not allowed. Warnings are strongly discouraged.
6 New errors are not allowed. Warnings are strongly discouraged.
6
7
7 $ hg files "set:(**.py or **.txt) - tests/**" | sed 's|\\|/|g' |
8 $ hg files "set:(**.py or **.txt) - tests/**" | sed 's|\\|/|g' |
8 > python contrib/check-config.py
9 > python contrib/check-config.py
@@ -1,23 +1,24
1 #require test-repo execbit
1 #require test-repo execbit
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ cd "`dirname "$TESTDIR"`"
4 $ cd "`dirname "$TESTDIR"`"
4
5
5 look for python scripts without the execute bit
6 look for python scripts without the execute bit
6
7
7 $ hg files 'set:**.py and not exec() and grep(r"^#!.*?python")'
8 $ hg files 'set:**.py and not exec() and grep(r"^#!.*?python")'
8 [1]
9 [1]
9
10
10 look for python scripts with execute bit but not shebang
11 look for python scripts with execute bit but not shebang
11
12
12 $ hg files 'set:**.py and exec() and not grep(r"^#!.*?python")'
13 $ hg files 'set:**.py and exec() and not grep(r"^#!.*?python")'
13 [1]
14 [1]
14
15
15 look for shell scripts with execute bit but not shebang
16 look for shell scripts with execute bit but not shebang
16
17
17 $ hg files 'set:**.sh and exec() and not grep(r"^#!.*(ba)?sh")'
18 $ hg files 'set:**.sh and exec() and not grep(r"^#!.*(ba)?sh")'
18 [1]
19 [1]
19
20
20 look for non scripts with no shebang
21 look for non scripts with no shebang
21
22
22 $ hg files 'set:exec() and not **.sh and not **.py and not grep(r"^#!")'
23 $ hg files 'set:exec() and not **.sh and not **.py and not grep(r"^#!")'
23 [1]
24 [1]
@@ -1,181 +1,182
1 #require test-repo
1 #require test-repo
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ import_checker="$TESTDIR"/../contrib/import-checker.py
4 $ import_checker="$TESTDIR"/../contrib/import-checker.py
4
5
5 Run the doctests from the import checker, and make sure
6 Run the doctests from the import checker, and make sure
6 it's working correctly.
7 it's working correctly.
7 $ TERM=dumb
8 $ TERM=dumb
8 $ export TERM
9 $ export TERM
9 $ python -m doctest $import_checker
10 $ python -m doctest $import_checker
10
11
11 Run additional tests for the import checker
12 Run additional tests for the import checker
12
13
13 $ mkdir testpackage
14 $ mkdir testpackage
14 $ touch testpackage/__init__.py
15 $ touch testpackage/__init__.py
15
16
16 $ cat > testpackage/multiple.py << EOF
17 $ cat > testpackage/multiple.py << EOF
17 > from __future__ import absolute_import
18 > from __future__ import absolute_import
18 > import os, sys
19 > import os, sys
19 > EOF
20 > EOF
20
21
21 $ cat > testpackage/unsorted.py << EOF
22 $ cat > testpackage/unsorted.py << EOF
22 > from __future__ import absolute_import
23 > from __future__ import absolute_import
23 > import sys
24 > import sys
24 > import os
25 > import os
25 > EOF
26 > EOF
26
27
27 $ cat > testpackage/stdafterlocal.py << EOF
28 $ cat > testpackage/stdafterlocal.py << EOF
28 > from __future__ import absolute_import
29 > from __future__ import absolute_import
29 > from . import unsorted
30 > from . import unsorted
30 > import os
31 > import os
31 > EOF
32 > EOF
32
33
33 $ cat > testpackage/requirerelative.py << EOF
34 $ cat > testpackage/requirerelative.py << EOF
34 > from __future__ import absolute_import
35 > from __future__ import absolute_import
35 > import testpackage.unsorted
36 > import testpackage.unsorted
36 > EOF
37 > EOF
37
38
38 $ cat > testpackage/importalias.py << EOF
39 $ cat > testpackage/importalias.py << EOF
39 > from __future__ import absolute_import
40 > from __future__ import absolute_import
40 > import ui
41 > import ui
41 > EOF
42 > EOF
42
43
43 $ cat > testpackage/relativestdlib.py << EOF
44 $ cat > testpackage/relativestdlib.py << EOF
44 > from __future__ import absolute_import
45 > from __future__ import absolute_import
45 > from .. import os
46 > from .. import os
46 > EOF
47 > EOF
47
48
48 $ cat > testpackage/symbolimport.py << EOF
49 $ cat > testpackage/symbolimport.py << EOF
49 > from __future__ import absolute_import
50 > from __future__ import absolute_import
50 > from .unsorted import foo
51 > from .unsorted import foo
51 > EOF
52 > EOF
52
53
53 $ cat > testpackage/latesymbolimport.py << EOF
54 $ cat > testpackage/latesymbolimport.py << EOF
54 > from __future__ import absolute_import
55 > from __future__ import absolute_import
55 > from . import unsorted
56 > from . import unsorted
56 > from mercurial.node import hex
57 > from mercurial.node import hex
57 > EOF
58 > EOF
58
59
59 $ cat > testpackage/multiplegroups.py << EOF
60 $ cat > testpackage/multiplegroups.py << EOF
60 > from __future__ import absolute_import
61 > from __future__ import absolute_import
61 > from . import unsorted
62 > from . import unsorted
62 > from . import more
63 > from . import more
63 > EOF
64 > EOF
64
65
65 $ mkdir testpackage/subpackage
66 $ mkdir testpackage/subpackage
66 $ cat > testpackage/subpackage/levelpriority.py << EOF
67 $ cat > testpackage/subpackage/levelpriority.py << EOF
67 > from __future__ import absolute_import
68 > from __future__ import absolute_import
68 > from . import foo
69 > from . import foo
69 > from .. import parent
70 > from .. import parent
70 > EOF
71 > EOF
71
72
72 $ touch testpackage/subpackage/foo.py
73 $ touch testpackage/subpackage/foo.py
73 $ cat > testpackage/subpackage/__init__.py << EOF
74 $ cat > testpackage/subpackage/__init__.py << EOF
74 > from __future__ import absolute_import
75 > from __future__ import absolute_import
75 > from . import levelpriority # should not cause cycle
76 > from . import levelpriority # should not cause cycle
76 > EOF
77 > EOF
77
78
78 $ cat > testpackage/subpackage/localimport.py << EOF
79 $ cat > testpackage/subpackage/localimport.py << EOF
79 > from __future__ import absolute_import
80 > from __future__ import absolute_import
80 > from . import foo
81 > from . import foo
81 > def bar():
82 > def bar():
82 > # should not cause "higher-level import should come first"
83 > # should not cause "higher-level import should come first"
83 > from .. import unsorted
84 > from .. import unsorted
84 > # but other errors should be detected
85 > # but other errors should be detected
85 > from .. import more
86 > from .. import more
86 > import testpackage.subpackage.levelpriority
87 > import testpackage.subpackage.levelpriority
87 > EOF
88 > EOF
88
89
89 $ cat > testpackage/importmodulefromsub.py << EOF
90 $ cat > testpackage/importmodulefromsub.py << EOF
90 > from __future__ import absolute_import
91 > from __future__ import absolute_import
91 > from .subpackage import foo # not a "direct symbol import"
92 > from .subpackage import foo # not a "direct symbol import"
92 > EOF
93 > EOF
93
94
94 $ cat > testpackage/importsymbolfromsub.py << EOF
95 $ cat > testpackage/importsymbolfromsub.py << EOF
95 > from __future__ import absolute_import
96 > from __future__ import absolute_import
96 > from .subpackage import foo, nonmodule
97 > from .subpackage import foo, nonmodule
97 > EOF
98 > EOF
98
99
99 $ cat > testpackage/sortedentries.py << EOF
100 $ cat > testpackage/sortedentries.py << EOF
100 > from __future__ import absolute_import
101 > from __future__ import absolute_import
101 > from . import (
102 > from . import (
102 > foo,
103 > foo,
103 > bar,
104 > bar,
104 > )
105 > )
105 > EOF
106 > EOF
106
107
107 $ cat > testpackage/importfromalias.py << EOF
108 $ cat > testpackage/importfromalias.py << EOF
108 > from __future__ import absolute_import
109 > from __future__ import absolute_import
109 > from . import ui
110 > from . import ui
110 > EOF
111 > EOF
111
112
112 $ cat > testpackage/importfromrelative.py << EOF
113 $ cat > testpackage/importfromrelative.py << EOF
113 > from __future__ import absolute_import
114 > from __future__ import absolute_import
114 > from testpackage.unsorted import foo
115 > from testpackage.unsorted import foo
115 > EOF
116 > EOF
116
117
117 $ mkdir testpackage2
118 $ mkdir testpackage2
118 $ touch testpackage2/__init__.py
119 $ touch testpackage2/__init__.py
119
120
120 $ cat > testpackage2/latesymbolimport.py << EOF
121 $ cat > testpackage2/latesymbolimport.py << EOF
121 > from __future__ import absolute_import
122 > from __future__ import absolute_import
122 > from testpackage import unsorted
123 > from testpackage import unsorted
123 > from mercurial.node import hex
124 > from mercurial.node import hex
124 > EOF
125 > EOF
125
126
126 $ python "$import_checker" testpackage*/*.py testpackage/subpackage/*.py
127 $ python "$import_checker" testpackage*/*.py testpackage/subpackage/*.py
127 testpackage/importalias.py:2: ui module must be "as" aliased to uimod
128 testpackage/importalias.py:2: ui module must be "as" aliased to uimod
128 testpackage/importfromalias.py:2: ui from testpackage must be "as" aliased to uimod
129 testpackage/importfromalias.py:2: ui from testpackage must be "as" aliased to uimod
129 testpackage/importfromrelative.py:2: import should be relative: testpackage.unsorted
130 testpackage/importfromrelative.py:2: import should be relative: testpackage.unsorted
130 testpackage/importfromrelative.py:2: direct symbol import foo from testpackage.unsorted
131 testpackage/importfromrelative.py:2: direct symbol import foo from testpackage.unsorted
131 testpackage/importsymbolfromsub.py:2: direct symbol import nonmodule from testpackage.subpackage
132 testpackage/importsymbolfromsub.py:2: direct symbol import nonmodule from testpackage.subpackage
132 testpackage/latesymbolimport.py:3: symbol import follows non-symbol import: mercurial.node
133 testpackage/latesymbolimport.py:3: symbol import follows non-symbol import: mercurial.node
133 testpackage/multiple.py:2: multiple imported names: os, sys
134 testpackage/multiple.py:2: multiple imported names: os, sys
134 testpackage/multiplegroups.py:3: multiple "from . import" statements
135 testpackage/multiplegroups.py:3: multiple "from . import" statements
135 testpackage/relativestdlib.py:2: relative import of stdlib module
136 testpackage/relativestdlib.py:2: relative import of stdlib module
136 testpackage/requirerelative.py:2: import should be relative: testpackage.unsorted
137 testpackage/requirerelative.py:2: import should be relative: testpackage.unsorted
137 testpackage/sortedentries.py:2: imports from testpackage not lexically sorted: bar < foo
138 testpackage/sortedentries.py:2: imports from testpackage not lexically sorted: bar < foo
138 testpackage/stdafterlocal.py:3: stdlib import "os" follows local import: testpackage
139 testpackage/stdafterlocal.py:3: stdlib import "os" follows local import: testpackage
139 testpackage/subpackage/levelpriority.py:3: higher-level import should come first: testpackage
140 testpackage/subpackage/levelpriority.py:3: higher-level import should come first: testpackage
140 testpackage/subpackage/localimport.py:7: multiple "from .. import" statements
141 testpackage/subpackage/localimport.py:7: multiple "from .. import" statements
141 testpackage/subpackage/localimport.py:8: import should be relative: testpackage.subpackage.levelpriority
142 testpackage/subpackage/localimport.py:8: import should be relative: testpackage.subpackage.levelpriority
142 testpackage/symbolimport.py:2: direct symbol import foo from testpackage.unsorted
143 testpackage/symbolimport.py:2: direct symbol import foo from testpackage.unsorted
143 testpackage/unsorted.py:3: imports not lexically sorted: os < sys
144 testpackage/unsorted.py:3: imports not lexically sorted: os < sys
144 testpackage2/latesymbolimport.py:3: symbol import follows non-symbol import: mercurial.node
145 testpackage2/latesymbolimport.py:3: symbol import follows non-symbol import: mercurial.node
145 [1]
146 [1]
146
147
147 $ cd "$TESTDIR"/..
148 $ cd "$TESTDIR"/..
148
149
149 There are a handful of cases here that require renaming a module so it
150 There are a handful of cases here that require renaming a module so it
150 doesn't overlap with a stdlib module name. There are also some cycles
151 doesn't overlap with a stdlib module name. There are also some cycles
151 here that we should still endeavor to fix, and some cycles will be
152 here that we should still endeavor to fix, and some cycles will be
152 hidden by deduplication algorithm in the cycle detector, so fixing
153 hidden by deduplication algorithm in the cycle detector, so fixing
153 these may expose other cycles.
154 these may expose other cycles.
154
155
155 Known-bad files are excluded by -X as some of them would produce unstable
156 Known-bad files are excluded by -X as some of them would produce unstable
156 outputs, which should be fixed later.
157 outputs, which should be fixed later.
157
158
158 $ hg locate '**.py' \
159 $ hg locate '**.py' \
159 > 'tests/**.t' \
160 > 'tests/**.t' \
160 > -X contrib/debugshell.py \
161 > -X contrib/debugshell.py \
161 > -X contrib/win32/hgwebdir_wsgi.py \
162 > -X contrib/win32/hgwebdir_wsgi.py \
162 > -X doc/gendoc.py \
163 > -X doc/gendoc.py \
163 > -X doc/hgmanpage.py \
164 > -X doc/hgmanpage.py \
164 > -X tests/test-hgweb-auth.py \
165 > -X tests/test-hgweb-auth.py \
165 > -X tests/hypothesishelpers.py \
166 > -X tests/hypothesishelpers.py \
166 > -X tests/test-ctxmanager.py \
167 > -X tests/test-ctxmanager.py \
167 > -X tests/test-lock.py \
168 > -X tests/test-lock.py \
168 > -X tests/test-verify-repo-operations.py \
169 > -X tests/test-verify-repo-operations.py \
169 > -X tests/test-hook.t \
170 > -X tests/test-hook.t \
170 > -X tests/test-import.t \
171 > -X tests/test-import.t \
171 > -X tests/test-check-module-imports.t \
172 > -X tests/test-check-module-imports.t \
172 > -X tests/test-commit-interactive.t \
173 > -X tests/test-commit-interactive.t \
173 > -X tests/test-contrib-check-code.t \
174 > -X tests/test-contrib-check-code.t \
174 > -X tests/test-extension.t \
175 > -X tests/test-extension.t \
175 > -X tests/test-hghave.t \
176 > -X tests/test-hghave.t \
176 > -X tests/test-hgweb-no-path-info.t \
177 > -X tests/test-hgweb-no-path-info.t \
177 > -X tests/test-hgweb-no-request-uri.t \
178 > -X tests/test-hgweb-no-request-uri.t \
178 > -X tests/test-hgweb-non-interactive.t \
179 > -X tests/test-hgweb-non-interactive.t \
179 > | sed 's-\\-/-g' | python "$import_checker" -
180 > | sed 's-\\-/-g' | python "$import_checker" -
180 Import cycle: hgext.largefiles.basestore -> hgext.largefiles.localstore -> hgext.largefiles.basestore
181 Import cycle: hgext.largefiles.basestore -> hgext.largefiles.localstore -> hgext.largefiles.basestore
181 [1]
182 [1]
@@ -1,161 +1,162
1 #require test-repo
1 #require test-repo
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ cd "$TESTDIR"/..
4 $ cd "$TESTDIR"/..
4
5
5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
6 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
6 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
7 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
7 hgext/fsmonitor/pywatchman/__init__.py requires print_function
8 hgext/fsmonitor/pywatchman/__init__.py requires print_function
8 hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
9 hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
9 hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
10 hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
10 hgext/highlight/__init__.py not using absolute_import
11 hgext/highlight/__init__.py not using absolute_import
11 hgext/highlight/highlight.py not using absolute_import
12 hgext/highlight/highlight.py not using absolute_import
12 hgext/largefiles/__init__.py not using absolute_import
13 hgext/largefiles/__init__.py not using absolute_import
13 hgext/largefiles/basestore.py not using absolute_import
14 hgext/largefiles/basestore.py not using absolute_import
14 hgext/largefiles/lfcommands.py not using absolute_import
15 hgext/largefiles/lfcommands.py not using absolute_import
15 hgext/largefiles/lfutil.py not using absolute_import
16 hgext/largefiles/lfutil.py not using absolute_import
16 hgext/largefiles/localstore.py not using absolute_import
17 hgext/largefiles/localstore.py not using absolute_import
17 hgext/largefiles/overrides.py not using absolute_import
18 hgext/largefiles/overrides.py not using absolute_import
18 hgext/largefiles/proto.py not using absolute_import
19 hgext/largefiles/proto.py not using absolute_import
19 hgext/largefiles/remotestore.py not using absolute_import
20 hgext/largefiles/remotestore.py not using absolute_import
20 hgext/largefiles/reposetup.py not using absolute_import
21 hgext/largefiles/reposetup.py not using absolute_import
21 hgext/largefiles/uisetup.py not using absolute_import
22 hgext/largefiles/uisetup.py not using absolute_import
22 hgext/largefiles/wirestore.py not using absolute_import
23 hgext/largefiles/wirestore.py not using absolute_import
23 hgext/share.py not using absolute_import
24 hgext/share.py not using absolute_import
24 hgext/win32text.py not using absolute_import
25 hgext/win32text.py not using absolute_import
25 i18n/check-translation.py not using absolute_import
26 i18n/check-translation.py not using absolute_import
26 i18n/polib.py not using absolute_import
27 i18n/polib.py not using absolute_import
27 setup.py not using absolute_import
28 setup.py not using absolute_import
28 tests/heredoctest.py requires print_function
29 tests/heredoctest.py requires print_function
29 tests/md5sum.py not using absolute_import
30 tests/md5sum.py not using absolute_import
30 tests/readlink.py not using absolute_import
31 tests/readlink.py not using absolute_import
31 tests/run-tests.py not using absolute_import
32 tests/run-tests.py not using absolute_import
32 tests/test-demandimport.py not using absolute_import
33 tests/test-demandimport.py not using absolute_import
33
34
34 #if py3exe
35 #if py3exe
35 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
36 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
36 doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
37 doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
37 hgext/automv.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
38 hgext/automv.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
38 hgext/blackbox.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
39 hgext/blackbox.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
39 hgext/bugzilla.py: error importing module: <ImportError> No module named 'urlparse' (line *) (glob)
40 hgext/bugzilla.py: error importing module: <ImportError> No module named 'urlparse' (line *) (glob)
40 hgext/censor.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
41 hgext/censor.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
41 hgext/chgserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
42 hgext/chgserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
42 hgext/children.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
43 hgext/children.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
43 hgext/churn.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
44 hgext/churn.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
44 hgext/clonebundles.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
45 hgext/clonebundles.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
45 hgext/color.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
46 hgext/color.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
46 hgext/convert/bzr.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
47 hgext/convert/bzr.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
47 hgext/convert/common.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
48 hgext/convert/common.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
48 hgext/convert/convcmd.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
49 hgext/convert/convcmd.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
49 hgext/convert/cvs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
50 hgext/convert/cvs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
50 hgext/convert/cvsps.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
51 hgext/convert/cvsps.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
51 hgext/convert/darcs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
52 hgext/convert/darcs.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
52 hgext/convert/filemap.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
53 hgext/convert/filemap.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
53 hgext/convert/git.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
54 hgext/convert/git.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
54 hgext/convert/gnuarch.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
55 hgext/convert/gnuarch.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
55 hgext/convert/hg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
56 hgext/convert/hg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
56 hgext/convert/monotone.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
57 hgext/convert/monotone.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
57 hgext/convert/p*.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
58 hgext/convert/p*.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
58 hgext/convert/subversion.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
59 hgext/convert/subversion.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
59 hgext/convert/transport.py: error importing module: <ImportError> No module named 'svn.client' (line *) (glob)
60 hgext/convert/transport.py: error importing module: <ImportError> No module named 'svn.client' (line *) (glob)
60 hgext/eol.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
61 hgext/eol.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
61 hgext/extdiff.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
62 hgext/extdiff.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
62 hgext/factotum.py: error importing: <ImportError> No module named 'rfc822' (error at __init__.py:*) (glob)
63 hgext/factotum.py: error importing: <ImportError> No module named 'rfc822' (error at __init__.py:*) (glob)
63 hgext/fetch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
64 hgext/fetch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
64 hgext/fsmonitor/watchmanclient.py: error importing module: <SystemError> Parent module 'hgext.fsmonitor' not loaded, cannot perform relative import (line *) (glob)
65 hgext/fsmonitor/watchmanclient.py: error importing module: <SystemError> Parent module 'hgext.fsmonitor' not loaded, cannot perform relative import (line *) (glob)
65 hgext/gpg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
66 hgext/gpg.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
66 hgext/graphlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
67 hgext/graphlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
67 hgext/hgk.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
68 hgext/hgk.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
68 hgext/histedit.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
69 hgext/histedit.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
69 hgext/keyword.py: error importing: <ImportError> No module named 'BaseHTTPServer' (error at common.py:*) (glob)
70 hgext/keyword.py: error importing: <ImportError> No module named 'BaseHTTPServer' (error at common.py:*) (glob)
70 hgext/largefiles/basestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
71 hgext/largefiles/basestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
71 hgext/largefiles/lfcommands.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
72 hgext/largefiles/lfcommands.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
72 hgext/largefiles/lfutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
73 hgext/largefiles/lfutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
73 hgext/largefiles/localstore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
74 hgext/largefiles/localstore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
74 hgext/largefiles/overrides.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
75 hgext/largefiles/overrides.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
75 hgext/largefiles/proto.py: error importing: <ImportError> No module named 'httplib' (error at httppeer.py:*) (glob)
76 hgext/largefiles/proto.py: error importing: <ImportError> No module named 'httplib' (error at httppeer.py:*) (glob)
76 hgext/largefiles/remotestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
77 hgext/largefiles/remotestore.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
77 hgext/largefiles/reposetup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
78 hgext/largefiles/reposetup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
78 hgext/largefiles/uisetup.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
79 hgext/largefiles/uisetup.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
79 hgext/largefiles/wirestore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
80 hgext/largefiles/wirestore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
80 hgext/mq.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
81 hgext/mq.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
81 hgext/notify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
82 hgext/notify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
82 hgext/pager.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
83 hgext/pager.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
83 hgext/patchbomb.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
84 hgext/patchbomb.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
84 hgext/purge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
85 hgext/purge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
85 hgext/rebase.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
86 hgext/rebase.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
86 hgext/record.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
87 hgext/record.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
87 hgext/relink.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
88 hgext/relink.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
88 hgext/schemes.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
89 hgext/schemes.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
89 hgext/share.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
90 hgext/share.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
90 hgext/shelve.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
91 hgext/shelve.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
91 hgext/strip.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
92 hgext/strip.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
92 hgext/transplant.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
93 hgext/transplant.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
93 mercurial/archival.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
94 mercurial/archival.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
94 mercurial/branchmap.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
95 mercurial/branchmap.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
95 mercurial/bundle*.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
96 mercurial/bundle*.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
96 mercurial/bundlerepo.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
97 mercurial/bundlerepo.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
97 mercurial/changegroup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
98 mercurial/changegroup.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
98 mercurial/changelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
99 mercurial/changelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
99 mercurial/cmdutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
100 mercurial/cmdutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
100 mercurial/commands.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
101 mercurial/commands.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
101 mercurial/commandserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
102 mercurial/commandserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
102 mercurial/context.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
103 mercurial/context.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
103 mercurial/copies.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
104 mercurial/copies.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
104 mercurial/crecord.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
105 mercurial/crecord.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
105 mercurial/dirstate.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
106 mercurial/dirstate.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
106 mercurial/discovery.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
107 mercurial/discovery.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
107 mercurial/dispatch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
108 mercurial/dispatch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
108 mercurial/exchange.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
109 mercurial/exchange.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
109 mercurial/extensions.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
110 mercurial/extensions.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
110 mercurial/filelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
111 mercurial/filelog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
111 mercurial/filemerge.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
112 mercurial/filemerge.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
112 mercurial/fileset.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
113 mercurial/fileset.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
113 mercurial/formatter.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
114 mercurial/formatter.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
114 mercurial/graphmod.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
115 mercurial/graphmod.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
115 mercurial/help.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
116 mercurial/help.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
116 mercurial/hg.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
117 mercurial/hg.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
117 mercurial/hgweb/common.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
118 mercurial/hgweb/common.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
118 mercurial/hgweb/hgweb_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
119 mercurial/hgweb/hgweb_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
119 mercurial/hgweb/hgwebdir_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
120 mercurial/hgweb/hgwebdir_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
120 mercurial/hgweb/protocol.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
121 mercurial/hgweb/protocol.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
121 mercurial/hgweb/request.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
122 mercurial/hgweb/request.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
122 mercurial/hgweb/server.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
123 mercurial/hgweb/server.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
123 mercurial/hgweb/webcommands.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
124 mercurial/hgweb/webcommands.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
124 mercurial/hgweb/webutil.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
125 mercurial/hgweb/webutil.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
125 mercurial/hgweb/wsgicgi.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
126 mercurial/hgweb/wsgicgi.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
126 mercurial/hook.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
127 mercurial/hook.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
127 mercurial/httpconnection.py: error importing: <ImportError> No module named 'rfc822' (error at __init__.py:*) (glob)
128 mercurial/httpconnection.py: error importing: <ImportError> No module named 'rfc822' (error at __init__.py:*) (glob)
128 mercurial/httppeer.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
129 mercurial/httppeer.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
129 mercurial/keepalive.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
130 mercurial/keepalive.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
130 mercurial/localrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
131 mercurial/localrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
131 mercurial/mail.py: error importing module: <AttributeError> module 'email' has no attribute 'Header' (line *) (glob)
132 mercurial/mail.py: error importing module: <AttributeError> module 'email' has no attribute 'Header' (line *) (glob)
132 mercurial/manifest.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
133 mercurial/manifest.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
133 mercurial/merge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
134 mercurial/merge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
134 mercurial/namespaces.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
135 mercurial/namespaces.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
135 mercurial/patch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
136 mercurial/patch.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
136 mercurial/pure/mpatch.py: error importing module: <ImportError> cannot import name 'pycompat' (line *) (glob)
137 mercurial/pure/mpatch.py: error importing module: <ImportError> cannot import name 'pycompat' (line *) (glob)
137 mercurial/pure/parsers.py: error importing module: <ImportError> No module named 'mercurial.pure.node' (line *) (glob)
138 mercurial/pure/parsers.py: error importing module: <ImportError> No module named 'mercurial.pure.node' (line *) (glob)
138 mercurial/repair.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
139 mercurial/repair.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
139 mercurial/revlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
140 mercurial/revlog.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
140 mercurial/revset.py: error importing module: <AttributeError> 'dict' object has no attribute 'iteritems' (line *) (glob)
141 mercurial/revset.py: error importing module: <AttributeError> 'dict' object has no attribute 'iteritems' (line *) (glob)
141 mercurial/scmutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
142 mercurial/scmutil.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
142 mercurial/scmwindows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
143 mercurial/scmwindows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
143 mercurial/simplemerge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
144 mercurial/simplemerge.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
144 mercurial/sshpeer.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
145 mercurial/sshpeer.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at wireproto.py:*) (glob)
145 mercurial/sshserver.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
146 mercurial/sshserver.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
146 mercurial/statichttprepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
147 mercurial/statichttprepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
147 mercurial/store.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
148 mercurial/store.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
148 mercurial/streamclone.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
149 mercurial/streamclone.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
149 mercurial/subrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
150 mercurial/subrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
150 mercurial/templatefilters.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
151 mercurial/templatefilters.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
151 mercurial/templatekw.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
152 mercurial/templatekw.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
152 mercurial/templater.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
153 mercurial/templater.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
153 mercurial/ui.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
154 mercurial/ui.py: error importing: <ImportError> No module named 'cPickle' (error at formatter.py:*) (glob)
154 mercurial/unionrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
155 mercurial/unionrepo.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
155 mercurial/url.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
156 mercurial/url.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
156 mercurial/verify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
157 mercurial/verify.py: error importing: <AttributeError> 'dict' object has no attribute 'iteritems' (error at revset.py:*) (glob)
157 mercurial/win*.py: error importing module: <ImportError> No module named 'msvcrt' (line *) (glob)
158 mercurial/win*.py: error importing module: <ImportError> No module named 'msvcrt' (line *) (glob)
158 mercurial/windows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
159 mercurial/windows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
159 mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
160 mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
160
161
161 #endif
162 #endif
@@ -1,12 +1,13
1 #require test-repo pyflakes hg10
1 #require test-repo pyflakes hg10
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ cd "`dirname "$TESTDIR"`"
4 $ cd "`dirname "$TESTDIR"`"
4
5
5 run pyflakes on all tracked files ending in .py or without a file ending
6 run pyflakes on all tracked files ending in .py or without a file ending
6 (skipping binary file random-seed)
7 (skipping binary file random-seed)
7
8
8 $ hg locate 'set:**.py or grep("^!#.*python")' 2>/dev/null \
9 $ hg locate 'set:**.py or grep("^!#.*python")' 2>/dev/null \
9 > | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
10 > | xargs pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
10 tests/filterpyflakes.py:61: undefined name 'undefinedname'
11 tests/filterpyflakes.py:61: undefined name 'undefinedname'
11
12
12
13
@@ -1,13 +1,14
1 #require test-repo
1 #require test-repo
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
3 $ cd "`dirname "$TESTDIR"`"
4 $ cd "`dirname "$TESTDIR"`"
4
5
5 look for python scripts that do not use /usr/bin/env
6 look for python scripts that do not use /usr/bin/env
6
7
7 $ hg files 'set:grep(r"^#!.*?python") and not grep(r"^#!/usr/bin/env python")'
8 $ hg files 'set:grep(r"^#!.*?python") and not grep(r"^#!/usr/bin/env python")'
8 [1]
9 [1]
9
10
10 look for shell scripts that do not use /bin/sh
11 look for shell scripts that do not use /bin/sh
11
12
12 $ hg files 'set:grep(r"^#!.*/bin/sh") and not grep(r"^#!/bin/sh")'
13 $ hg files 'set:grep(r"^#!.*/bin/sh") and not grep(r"^#!/bin/sh")'
13 [1]
14 [1]
@@ -1,149 +1,150
1 #require test-repo
1 #require test-repo
2
2
3 Set vars:
3 Set vars:
4
4
5 $ . "$TESTDIR/helpers-testrepo.sh"
5 $ CONTRIBDIR="$TESTDIR/../contrib"
6 $ CONTRIBDIR="$TESTDIR/../contrib"
6
7
7 Prepare repo:
8 Prepare repo:
8
9
9 $ hg init
10 $ hg init
10
11
11 $ echo this is file a > a
12 $ echo this is file a > a
12 $ hg add a
13 $ hg add a
13 $ hg commit -m first
14 $ hg commit -m first
14
15
15 $ echo adding to file a >> a
16 $ echo adding to file a >> a
16 $ hg commit -m second
17 $ hg commit -m second
17
18
18 $ echo adding more to file a >> a
19 $ echo adding more to file a >> a
19 $ hg commit -m third
20 $ hg commit -m third
20
21
21 $ hg up -r 0
22 $ hg up -r 0
22 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
23 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
23 $ echo merge-this >> a
24 $ echo merge-this >> a
24 $ hg commit -m merge-able
25 $ hg commit -m merge-able
25 created new head
26 created new head
26
27
27 $ hg up -r 2
28 $ hg up -r 2
28 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
29
30
30 perfstatus
31 perfstatus
31
32
32 $ cat >> $HGRCPATH << EOF
33 $ cat >> $HGRCPATH << EOF
33 > [extensions]
34 > [extensions]
34 > perfstatusext=$CONTRIBDIR/perf.py
35 > perfstatusext=$CONTRIBDIR/perf.py
35 > [perf]
36 > [perf]
36 > presleep=0
37 > presleep=0
37 > stub=on
38 > stub=on
38 > parentscount=1
39 > parentscount=1
39 > EOF
40 > EOF
40 $ hg help perfstatusext
41 $ hg help perfstatusext
41 perfstatusext extension - helper extension to measure performance
42 perfstatusext extension - helper extension to measure performance
42
43
43 list of commands:
44 list of commands:
44
45
45 perfaddremove
46 perfaddremove
46 (no help text available)
47 (no help text available)
47 perfancestors
48 perfancestors
48 (no help text available)
49 (no help text available)
49 perfancestorset
50 perfancestorset
50 (no help text available)
51 (no help text available)
51 perfannotate (no help text available)
52 perfannotate (no help text available)
52 perfbranchmap
53 perfbranchmap
53 benchmark the update of a branchmap
54 benchmark the update of a branchmap
54 perfcca (no help text available)
55 perfcca (no help text available)
55 perfchangeset
56 perfchangeset
56 (no help text available)
57 (no help text available)
57 perfctxfiles (no help text available)
58 perfctxfiles (no help text available)
58 perfdiffwd Profile diff of working directory changes
59 perfdiffwd Profile diff of working directory changes
59 perfdirfoldmap
60 perfdirfoldmap
60 (no help text available)
61 (no help text available)
61 perfdirs (no help text available)
62 perfdirs (no help text available)
62 perfdirstate (no help text available)
63 perfdirstate (no help text available)
63 perfdirstatedirs
64 perfdirstatedirs
64 (no help text available)
65 (no help text available)
65 perfdirstatefoldmap
66 perfdirstatefoldmap
66 (no help text available)
67 (no help text available)
67 perfdirstatewrite
68 perfdirstatewrite
68 (no help text available)
69 (no help text available)
69 perffncacheencode
70 perffncacheencode
70 (no help text available)
71 (no help text available)
71 perffncacheload
72 perffncacheload
72 (no help text available)
73 (no help text available)
73 perffncachewrite
74 perffncachewrite
74 (no help text available)
75 (no help text available)
75 perfheads (no help text available)
76 perfheads (no help text available)
76 perfindex (no help text available)
77 perfindex (no help text available)
77 perfloadmarkers
78 perfloadmarkers
78 benchmark the time to parse the on-disk markers for a repo
79 benchmark the time to parse the on-disk markers for a repo
79 perflog (no help text available)
80 perflog (no help text available)
80 perflookup (no help text available)
81 perflookup (no help text available)
81 perflrucachedict
82 perflrucachedict
82 (no help text available)
83 (no help text available)
83 perfmanifest (no help text available)
84 perfmanifest (no help text available)
84 perfmergecalculate
85 perfmergecalculate
85 (no help text available)
86 (no help text available)
86 perfmoonwalk benchmark walking the changelog backwards
87 perfmoonwalk benchmark walking the changelog backwards
87 perfnodelookup
88 perfnodelookup
88 (no help text available)
89 (no help text available)
89 perfparents (no help text available)
90 perfparents (no help text available)
90 perfpathcopies
91 perfpathcopies
91 (no help text available)
92 (no help text available)
92 perfrawfiles (no help text available)
93 perfrawfiles (no help text available)
93 perfrevlog Benchmark reading a series of revisions from a revlog.
94 perfrevlog Benchmark reading a series of revisions from a revlog.
94 perfrevlogrevision
95 perfrevlogrevision
95 Benchmark obtaining a revlog revision.
96 Benchmark obtaining a revlog revision.
96 perfrevrange (no help text available)
97 perfrevrange (no help text available)
97 perfrevset benchmark the execution time of a revset
98 perfrevset benchmark the execution time of a revset
98 perfstartup (no help text available)
99 perfstartup (no help text available)
99 perfstatus (no help text available)
100 perfstatus (no help text available)
100 perftags (no help text available)
101 perftags (no help text available)
101 perftemplating
102 perftemplating
102 (no help text available)
103 (no help text available)
103 perfvolatilesets
104 perfvolatilesets
104 benchmark the computation of various volatile set
105 benchmark the computation of various volatile set
105 perfwalk (no help text available)
106 perfwalk (no help text available)
106
107
107 (use "hg help -v perfstatusext" to show built-in aliases and global options)
108 (use "hg help -v perfstatusext" to show built-in aliases and global options)
108 $ hg perfaddremove
109 $ hg perfaddremove
109 $ hg perfancestors
110 $ hg perfancestors
110 $ hg perfancestorset 2
111 $ hg perfancestorset 2
111 $ hg perfannotate a
112 $ hg perfannotate a
112 $ hg perfbranchmap
113 $ hg perfbranchmap
113 $ hg perfcca
114 $ hg perfcca
114 $ hg perfchangeset 2
115 $ hg perfchangeset 2
115 $ hg perfctxfiles 2
116 $ hg perfctxfiles 2
116 $ hg perfdiffwd
117 $ hg perfdiffwd
117 $ hg perfdirfoldmap
118 $ hg perfdirfoldmap
118 $ hg perfdirs
119 $ hg perfdirs
119 $ hg perfdirstate
120 $ hg perfdirstate
120 $ hg perfdirstatedirs
121 $ hg perfdirstatedirs
121 $ hg perfdirstatefoldmap
122 $ hg perfdirstatefoldmap
122 $ hg perfdirstatewrite
123 $ hg perfdirstatewrite
123 $ hg perffncacheencode
124 $ hg perffncacheencode
124 $ hg perffncacheload
125 $ hg perffncacheload
125 $ hg perffncachewrite
126 $ hg perffncachewrite
126 $ hg perfheads
127 $ hg perfheads
127 $ hg perfindex
128 $ hg perfindex
128 $ hg perfloadmarkers
129 $ hg perfloadmarkers
129 $ hg perflog
130 $ hg perflog
130 $ hg perflookup 2
131 $ hg perflookup 2
131 $ hg perflrucache
132 $ hg perflrucache
132 $ hg perfmanifest 2
133 $ hg perfmanifest 2
133 $ hg perfmergecalculate -r 3
134 $ hg perfmergecalculate -r 3
134 $ hg perfmoonwalk
135 $ hg perfmoonwalk
135 $ hg perfnodelookup 2
136 $ hg perfnodelookup 2
136 $ hg perfpathcopies 1 2
137 $ hg perfpathcopies 1 2
137 $ hg perfrawfiles 2
138 $ hg perfrawfiles 2
138 $ hg perfrevlog .hg/store/data/a.i
139 $ hg perfrevlog .hg/store/data/a.i
139 $ hg perfrevlogrevision -m 0
140 $ hg perfrevlogrevision -m 0
140 $ hg perfrevrange
141 $ hg perfrevrange
141 $ hg perfrevset 'all()'
142 $ hg perfrevset 'all()'
142 $ hg perfstartup
143 $ hg perfstartup
143 $ hg perfstatus
144 $ hg perfstatus
144 $ hg perftags
145 $ hg perftags
145 $ hg perftemplating
146 $ hg perftemplating
146 $ hg perfvolatilesets
147 $ hg perfvolatilesets
147 $ hg perfwalk
148 $ hg perfwalk
148 $ hg perfparents
149 $ hg perfparents
149
150
@@ -1,20 +1,22
1 #require test-repo slow debhelper
1 #require test-repo slow debhelper
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
4
3 Ensure debuild doesn't run the testsuite, as that could get silly.
5 Ensure debuild doesn't run the testsuite, as that could get silly.
4 $ DEB_BUILD_OPTIONS=nocheck
6 $ DEB_BUILD_OPTIONS=nocheck
5 $ export DEB_BUILD_OPTIONS
7 $ export DEB_BUILD_OPTIONS
6 $ OUTPUTDIR=`pwd`
8 $ OUTPUTDIR=`pwd`
7 $ export OUTPUTDIR
9 $ export OUTPUTDIR
8
10
9 $ cd "$TESTDIR"/..
11 $ cd "$TESTDIR"/..
10 $ make deb > $OUTPUTDIR/build.log 2>&1
12 $ make deb > $OUTPUTDIR/build.log 2>&1
11 $ cd $OUTPUTDIR
13 $ cd $OUTPUTDIR
12 $ ls *.deb
14 $ ls *.deb
13 mercurial-common_*.deb (glob)
15 mercurial-common_*.deb (glob)
14 mercurial_*.deb (glob)
16 mercurial_*.deb (glob)
15 main deb should have .so but no .py
17 main deb should have .so but no .py
16 $ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
18 $ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
17 * ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
19 * ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
18 mercurial-common should have py but no .so or pyc
20 mercurial-common should have py but no .so or pyc
19 $ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers)'
21 $ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers)'
20 * ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)
22 * ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)
@@ -1,28 +1,30
1 #require test-repo slow docker
1 #require test-repo slow docker
2
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
4
3 Ensure debuild doesn't run the testsuite, as that could get silly.
5 Ensure debuild doesn't run the testsuite, as that could get silly.
4 $ DEB_BUILD_OPTIONS=nocheck
6 $ DEB_BUILD_OPTIONS=nocheck
5 $ export DEB_BUILD_OPTIONS
7 $ export DEB_BUILD_OPTIONS
6 $ OUTPUTDIR=`pwd`
8 $ OUTPUTDIR=`pwd`
7 $ export OUTPUTDIR
9 $ export OUTPUTDIR
8
10
9 $ cd "$TESTDIR"/..
11 $ cd "$TESTDIR"/..
10 $ make docker-debian-jessie > $OUTPUTDIR/build.log 2>&1
12 $ make docker-debian-jessie > $OUTPUTDIR/build.log 2>&1
11 $ cd $OUTPUTDIR
13 $ cd $OUTPUTDIR
12 $ ls *.deb
14 $ ls *.deb
13 mercurial-common_*.deb (glob)
15 mercurial-common_*.deb (glob)
14 mercurial_*.deb (glob)
16 mercurial_*.deb (glob)
15
17
16 We check debian package contents with portable tools so that when
18 We check debian package contents with portable tools so that when
17 we're on non-debian machines we can still test the packages that are
19 we're on non-debian machines we can still test the packages that are
18 built using docker.
20 built using docker.
19
21
20 main deb should have .so but no .py
22 main deb should have .so but no .py
21 $ ar x mercurial_*.deb
23 $ ar x mercurial_*.deb
22 $ tar tf data.tar* | egrep '(localrepo|parsers)'
24 $ tar tf data.tar* | egrep '(localrepo|parsers)'
23 ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
25 ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
24 mercurial-common should have .py but no .so or .pyc
26 mercurial-common should have .py but no .so or .pyc
25 $ ar x mercurial-common_*.deb
27 $ ar x mercurial-common_*.deb
26 $ tar tf data.tar* | egrep '(localrepo|parsers)'
28 $ tar tf data.tar* | egrep '(localrepo|parsers)'
27 ./usr/lib/python2.7/dist-packages/mercurial/pure/parsers.py
29 ./usr/lib/python2.7/dist-packages/mercurial/pure/parsers.py
28 ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py
30 ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py
@@ -1,147 +1,149
1 hg debuginstall
1 hg debuginstall
2 $ hg debuginstall
2 $ hg debuginstall
3 checking encoding (ascii)...
3 checking encoding (ascii)...
4 checking Python executable (*) (glob)
4 checking Python executable (*) (glob)
5 checking Python version (2.*) (glob)
5 checking Python version (2.*) (glob)
6 checking Python lib (*lib*)... (glob)
6 checking Python lib (*lib*)... (glob)
7 checking Mercurial version (*) (glob)
7 checking Mercurial version (*) (glob)
8 checking Mercurial custom build (*) (glob)
8 checking Mercurial custom build (*) (glob)
9 checking installed modules (*mercurial)... (glob)
9 checking installed modules (*mercurial)... (glob)
10 checking templates (*mercurial?templates)... (glob)
10 checking templates (*mercurial?templates)... (glob)
11 checking default template (*mercurial?templates?map-cmdline.default) (glob)
11 checking default template (*mercurial?templates?map-cmdline.default) (glob)
12 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
12 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
13 checking username (test)
13 checking username (test)
14 no problems detected
14 no problems detected
15
15
16 hg debuginstall JSON
16 hg debuginstall JSON
17 $ hg debuginstall -Tjson | sed 's|\\\\|\\|g'
17 $ hg debuginstall -Tjson | sed 's|\\\\|\\|g'
18 [
18 [
19 {
19 {
20 "defaulttemplate": "*mercurial?templates?map-cmdline.default", (glob)
20 "defaulttemplate": "*mercurial?templates?map-cmdline.default", (glob)
21 "defaulttemplateerror": null,
21 "defaulttemplateerror": null,
22 "defaulttemplatenotfound": "default",
22 "defaulttemplatenotfound": "default",
23 "editor": "* -c \"import sys; sys.exit(0)\"", (glob)
23 "editor": "* -c \"import sys; sys.exit(0)\"", (glob)
24 "editornotfound": false,
24 "editornotfound": false,
25 "encoding": "ascii",
25 "encoding": "ascii",
26 "encodingerror": null,
26 "encodingerror": null,
27 "extensionserror": null,
27 "extensionserror": null,
28 "hgmodules": "*mercurial", (glob)
28 "hgmodules": "*mercurial", (glob)
29 "hgver": "*", (glob)
29 "hgver": "*", (glob)
30 "hgverextra": "*", (glob)
30 "hgverextra": "*", (glob)
31 "problems": 0,
31 "problems": 0,
32 "pythonexe": "*", (glob)
32 "pythonexe": "*", (glob)
33 "pythonlib": "*", (glob)
33 "pythonlib": "*", (glob)
34 "pythonver": "*.*.*", (glob)
34 "pythonver": "*.*.*", (glob)
35 "templatedirs": "*mercurial?templates", (glob)
35 "templatedirs": "*mercurial?templates", (glob)
36 "username": "test",
36 "username": "test",
37 "usernameerror": null,
37 "usernameerror": null,
38 "vinotfound": false
38 "vinotfound": false
39 }
39 }
40 ]
40 ]
41
41
42 hg debuginstall with no username
42 hg debuginstall with no username
43 $ HGUSER= hg debuginstall
43 $ HGUSER= hg debuginstall
44 checking encoding (ascii)...
44 checking encoding (ascii)...
45 checking Python executable (*) (glob)
45 checking Python executable (*) (glob)
46 checking Python version (2.*) (glob)
46 checking Python version (2.*) (glob)
47 checking Python lib (*lib*)... (glob)
47 checking Python lib (*lib*)... (glob)
48 checking Mercurial version (*) (glob)
48 checking Mercurial version (*) (glob)
49 checking Mercurial custom build (*) (glob)
49 checking Mercurial custom build (*) (glob)
50 checking installed modules (*mercurial)... (glob)
50 checking installed modules (*mercurial)... (glob)
51 checking templates (*mercurial?templates)... (glob)
51 checking templates (*mercurial?templates)... (glob)
52 checking default template (*mercurial?templates?map-cmdline.default) (glob)
52 checking default template (*mercurial?templates?map-cmdline.default) (glob)
53 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
53 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
54 checking username...
54 checking username...
55 no username supplied
55 no username supplied
56 (specify a username in your configuration file)
56 (specify a username in your configuration file)
57 1 problems detected, please check your install!
57 1 problems detected, please check your install!
58 [1]
58 [1]
59
59
60 path variables are expanded (~ is the same as $TESTTMP)
60 path variables are expanded (~ is the same as $TESTTMP)
61 $ mkdir tools
61 $ mkdir tools
62 $ touch tools/testeditor.exe
62 $ touch tools/testeditor.exe
63 #if execbit
63 #if execbit
64 $ chmod 755 tools/testeditor.exe
64 $ chmod 755 tools/testeditor.exe
65 #endif
65 #endif
66 $ hg debuginstall --config ui.editor=~/tools/testeditor.exe
66 $ hg debuginstall --config ui.editor=~/tools/testeditor.exe
67 checking encoding (ascii)...
67 checking encoding (ascii)...
68 checking Python executable (*) (glob)
68 checking Python executable (*) (glob)
69 checking Python version (*) (glob)
69 checking Python version (*) (glob)
70 checking Python lib (*lib*)... (glob)
70 checking Python lib (*lib*)... (glob)
71 checking Mercurial version (*) (glob)
71 checking Mercurial version (*) (glob)
72 checking Mercurial custom build (*) (glob)
72 checking Mercurial custom build (*) (glob)
73 checking installed modules (*mercurial)... (glob)
73 checking installed modules (*mercurial)... (glob)
74 checking templates (*mercurial?templates)... (glob)
74 checking templates (*mercurial?templates)... (glob)
75 checking default template (*mercurial?templates?map-cmdline.default) (glob)
75 checking default template (*mercurial?templates?map-cmdline.default) (glob)
76 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
76 checking commit editor... (* -c "import sys; sys.exit(0)") (glob)
77 checking username (test)
77 checking username (test)
78 no problems detected
78 no problems detected
79
79
80 #if test-repo
80 #if test-repo
81 $ . "$TESTDIR/helpers-testrepo.sh"
82
81 $ cat >> wixxml.py << EOF
83 $ cat >> wixxml.py << EOF
82 > import os, subprocess, sys
84 > import os, subprocess, sys
83 > import xml.etree.ElementTree as ET
85 > import xml.etree.ElementTree as ET
84 >
86 >
85 > # MSYS mangles the path if it expands $TESTDIR
87 > # MSYS mangles the path if it expands $TESTDIR
86 > testdir = os.environ['TESTDIR']
88 > testdir = os.environ['TESTDIR']
87 > ns = {'wix' : 'http://schemas.microsoft.com/wix/2006/wi'}
89 > ns = {'wix' : 'http://schemas.microsoft.com/wix/2006/wi'}
88 >
90 >
89 > def directory(node, relpath):
91 > def directory(node, relpath):
90 > '''generator of files in the xml node, rooted at relpath'''
92 > '''generator of files in the xml node, rooted at relpath'''
91 > dirs = node.findall('./{%(wix)s}Directory' % ns)
93 > dirs = node.findall('./{%(wix)s}Directory' % ns)
92 >
94 >
93 > for d in dirs:
95 > for d in dirs:
94 > for subfile in directory(d, relpath + d.attrib['Name'] + '/'):
96 > for subfile in directory(d, relpath + d.attrib['Name'] + '/'):
95 > yield subfile
97 > yield subfile
96 >
98 >
97 > files = node.findall('./{%(wix)s}Component/{%(wix)s}File' % ns)
99 > files = node.findall('./{%(wix)s}Component/{%(wix)s}File' % ns)
98 >
100 >
99 > for f in files:
101 > for f in files:
100 > yield relpath + f.attrib['Name']
102 > yield relpath + f.attrib['Name']
101 >
103 >
102 > def hgdirectory(relpath):
104 > def hgdirectory(relpath):
103 > '''generator of tracked files, rooted at relpath'''
105 > '''generator of tracked files, rooted at relpath'''
104 > hgdir = "%s/../mercurial" % (testdir)
106 > hgdir = "%s/../mercurial" % (testdir)
105 > args = ['hg', '--cwd', hgdir, 'files', relpath]
107 > args = ['hg', '--cwd', hgdir, 'files', relpath]
106 > proc = subprocess.Popen(args, stdout=subprocess.PIPE,
108 > proc = subprocess.Popen(args, stdout=subprocess.PIPE,
107 > stderr=subprocess.PIPE)
109 > stderr=subprocess.PIPE)
108 > output = proc.communicate()[0]
110 > output = proc.communicate()[0]
109 >
111 >
110 > slash = '/'
112 > slash = '/'
111 > for line in output.splitlines():
113 > for line in output.splitlines():
112 > if os.name == 'nt':
114 > if os.name == 'nt':
113 > yield line.replace(os.sep, slash)
115 > yield line.replace(os.sep, slash)
114 > else:
116 > else:
115 > yield line
117 > yield line
116 >
118 >
117 > tracked = [f for f in hgdirectory(sys.argv[1])]
119 > tracked = [f for f in hgdirectory(sys.argv[1])]
118 >
120 >
119 > xml = ET.parse("%s/../contrib/wix/%s.wxs" % (testdir, sys.argv[1]))
121 > xml = ET.parse("%s/../contrib/wix/%s.wxs" % (testdir, sys.argv[1]))
120 > root = xml.getroot()
122 > root = xml.getroot()
121 > dir = root.find('.//{%(wix)s}DirectoryRef' % ns)
123 > dir = root.find('.//{%(wix)s}DirectoryRef' % ns)
122 >
124 >
123 > installed = [f for f in directory(dir, '')]
125 > installed = [f for f in directory(dir, '')]
124 >
126 >
125 > print('Not installed:')
127 > print('Not installed:')
126 > for f in sorted(set(tracked) - set(installed)):
128 > for f in sorted(set(tracked) - set(installed)):
127 > print(' %s' % f)
129 > print(' %s' % f)
128 >
130 >
129 > print('Not tracked:')
131 > print('Not tracked:')
130 > for f in sorted(set(installed) - set(tracked)):
132 > for f in sorted(set(installed) - set(tracked)):
131 > print(' %s' % f)
133 > print(' %s' % f)
132 > EOF
134 > EOF
133
135
134 $ python wixxml.py help
136 $ python wixxml.py help
135 Not installed:
137 Not installed:
136 help/common.txt
138 help/common.txt
137 help/hg-ssh.8.txt
139 help/hg-ssh.8.txt
138 help/hg.1.txt
140 help/hg.1.txt
139 help/hgignore.5.txt
141 help/hgignore.5.txt
140 help/hgrc.5.txt
142 help/hgrc.5.txt
141 Not tracked:
143 Not tracked:
142
144
143 $ python wixxml.py templates
145 $ python wixxml.py templates
144 Not installed:
146 Not installed:
145 Not tracked:
147 Not tracked:
146
148
147 #endif
149 #endif
@@ -1,44 +1,47
1 #require test-repo slow osx osxpackaging
1 #require test-repo slow osx osxpackaging
2
3 $ . "$TESTDIR/helpers-testrepo.sh"
4
2 $ OUTPUTDIR=`pwd`
5 $ OUTPUTDIR=`pwd`
3 $ export OUTPUTDIR
6 $ export OUTPUTDIR
4 $ KEEPMPKG=yes
7 $ KEEPMPKG=yes
5 $ export KEEPMPKG
8 $ export KEEPMPKG
6
9
7 $ cd "$TESTDIR"/..
10 $ cd "$TESTDIR"/..
8 $ rm -rf dist
11 $ rm -rf dist
9 $ make osx > $OUTPUTDIR/build.log 2>&1
12 $ make osx > $OUTPUTDIR/build.log 2>&1
10 $ cd $OUTPUTDIR
13 $ cd $OUTPUTDIR
11 $ ls -d *.pkg
14 $ ls -d *.pkg
12 Mercurial-*-macosx10.*.pkg (glob)
15 Mercurial-*-macosx10.*.pkg (glob)
13
16
14 $ xar -xf Mercurial*.pkg
17 $ xar -xf Mercurial*.pkg
15
18
16 Gather list of all installed files:
19 Gather list of all installed files:
17 $ lsbom mercurial.pkg/Bom > boms.txt
20 $ lsbom mercurial.pkg/Bom > boms.txt
18
21
19 Spot-check some randomly selected files:
22 Spot-check some randomly selected files:
20 $ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
23 $ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
21 ./Library/Python/2.7/site-packages/mercurial/bdiff.so 100755 0/0
24 ./Library/Python/2.7/site-packages/mercurial/bdiff.so 100755 0/0
22 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.py 100644 0/0
25 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.py 100644 0/0
23 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyc 100644 0/0
26 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyc 100644 0/0
24 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyo 100644 0/0
27 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyo 100644 0/0
25 $ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3
28 $ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3
26 ./usr/local/share/man/man1 40755 0/0
29 ./usr/local/share/man/man1 40755 0/0
27 ./usr/local/share/man/man1/hg.1 100644 0/0
30 ./usr/local/share/man/man1/hg.1 100644 0/0
28 ./usr/local/share/man/man5 40755 0/0
31 ./usr/local/share/man/man5 40755 0/0
29 ./usr/local/share/man/man5/hgignore.5 100644 0/0
32 ./usr/local/share/man/man5/hgignore.5 100644 0/0
30 ./usr/local/share/man/man5/hgrc.5 100644 0/0
33 ./usr/local/share/man/man5/hgrc.5 100644 0/0
31 $ grep bser boms.txt | cut -d ' ' -f 1,2,3
34 $ grep bser boms.txt | cut -d ' ' -f 1,2,3
32 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/bser.so 100755 0/0
35 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/bser.so 100755 0/0
33 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.py 100644 0/0
36 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.py 100644 0/0
34 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyc 100644 0/0
37 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyc 100644 0/0
35 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyo 100644 0/0
38 ./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyo 100644 0/0
36 $ grep localrepo boms.txt | cut -d ' ' -f 1,2,3
39 $ grep localrepo boms.txt | cut -d ' ' -f 1,2,3
37 ./Library/Python/2.7/site-packages/mercurial/localrepo.py 100644 0/0
40 ./Library/Python/2.7/site-packages/mercurial/localrepo.py 100644 0/0
38 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyc 100644 0/0
41 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyc 100644 0/0
39 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyo 100644 0/0
42 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyo 100644 0/0
40 $ grep '/hg ' boms.txt | cut -d ' ' -f 1,2,3
43 $ grep '/hg ' boms.txt | cut -d ' ' -f 1,2,3
41 ./usr/local/bin/hg 100755 0/0
44 ./usr/local/bin/hg 100755 0/0
42
45
43 Note that we're not currently installing any /etc/mercurial stuff,
46 Note that we're not currently installing any /etc/mercurial stuff,
44 including merge-tool configurations.
47 including merge-tool configurations.
General Comments 0
You need to be logged in to leave comments. Login now