##// END OF EJS Templates
merge with stable
Augie Fackler -
r33720:86aca74a merge default
parent child Browse files
Show More
@@ -147,3 +147,5 bb96d4a497432722623ae60d9bc734a1e360179e
147 147 c850f0ed54c1d42f9aa079ad528f8127e5775217 0 iQIVAwUAWTQINUemf/qjRqrOAQjZDw//b4pEgHYfWRVDEmLZtevysfhlJzbSyLAnWgNnRUVdSwl4WRF1r6ds/q7N4Ege5wQHjOpRtx4jC3y/riMbrLUlaeUXzCdqKgm4JcINS1nXy3IfkeDdUKyOR9upjaVhIEzCMRpyzabdYuflh5CoxayO7GFk2iZ8c1oAl4QzuLSspn9w+znqDg0HrMDbRNijStSulNjkqutih9UqT/PYizhE1UjL0NSnpYyD1vDljsHModJc2dhSzuZ1c4VFZHkienk+CNyeLtVKg8aC+Ej/Ppwq6FlE461T/RxOEzf+WFAc9F4iJibSN2kAFB4ySJ43y+OKkvzAwc5XbUx0y6OlWn2Ph+5T54sIwqasG3DjXyVrwVtAvCrcWUmOyS0RfkKoDVepMPIhFXyrhGqUYSq25Gt6tHVtIrlcWARIGGWlsE+PSHi87qcnSjs4xUzZwVvJWz4fuM1AUG/GTpyt4w3kB85XQikIINkmSTmsM/2/ar75T6jBL3kqOCGOL3n7bVZsGXllhkkQ7e/jqPPWnNXm8scDYdT3WENNu34zZp5ZmqdTXPAIIaqGswnU04KfUSEoYtOMri3E2VvrgMkiINm9BOKpgeTsMb3dkYRw2ZY3UAH9QfdX9BZywk6v3kkE5ghLWMUoQ4sqRlTo7mJKA8+EodjmIGRV/kAv1f7pigg6pIWWEyo=
148 148 26c49ed51a698ec016d2b4c6b44ca3c3f73cc788 0 iQIcBAABCAAGBQJZXQSmAAoJELnJ3IJKpb3VmTwP/jsxFTlKzWU8EnEhEViiP2YREOD3AXU7685DIMnoyVAsZgxrt0CG6Y92b5sINCeh5B0ORPQ7+xi2Xmz6tX8EeAR+/Dpdx6K623yExf8kq91zgfMvYkatNMu6ZVfywibYZAASq02oKoX7WqSPcQG/OwgtdFiGacCrG5iMH7wRv0N9hPc6D5vAV8/H/Inq8twpSG5SGDpCdKj7KPZiY8DFu/3OXatJtl+byg8zWT4FCYKkBPvmZp8/sRhDKBgwr3RvF1p84uuw/QxXjt+DmGxgtjvObjHr+shCMcKBAuZ4RtZmyEo/0L81uaTElHu1ejsEzsEKxs+8YifnH070PTFoV4VXQyXfTc8AyaqHE6rzX96a/HjQiJnL4dFeTZIrUhGK3AkObFLWJxVTo4J8+oliBQQldIh1H2yb1ZMfwapLnUGIqSieHDGZ6K2ccNJK8Q7IRhTCvYc0cjsnbwTpV4cebGqf3WXZhX0cZN+TNfhh/HGRzR1EeAAavjJqpDam1OBA5TmtJd/lHLIRVR5jyG+r4SK0XDlJ8uSfah7MpVH6aQ6UrycPyFusGXQlIqJ1DYQaBrI/SRJfIvRUmvVz9WgKLe83oC3Ui3aWR9rNjMb2InuQuXjeZaeaYfBAUYACcGfCZpZZvoEkMHCqtTng1rbbFnKMFk5kVy9YWuVgK9Iuh0O5
149 149 857876ebaed4e315f63157bd157d6ce553c7ab73 0 iQIVAwUAWW9XW0emf/qjRqrOAQhI7A//cKXIM4l8vrWWsc1Os4knXm/2UaexmAwV70TpviKL9RxCy5zBP/EapCaGRCH8uNPOQTkWGR9Aucm3CtxhggCMzULQxxeH86mEpWf1xILWLySPXW/t2f+2zxrwLSAxxqFJtuYv83Pe8CnS3y4BlgHnBKYXH8XXuW8uvfc0lHKblhrspGBIAinx7vPLoGQcpYrn9USWUKq5d9FaCLQCDT9501FHKf5dlYQajevCUDnewtn5ohelOXjTJQClW3aygv/z+98Kq7ZhayeIiZu+SeP+Ay7lZPklXcy6eyRiQtGCa1yesb9v53jKtgxWewV4o6zyuUesdknZ/IBeNUgw8LepqTIJo6/ckyvBOsSQcda81DuYNUChZLYTSXYPHEUmYiz6CvNoLEgHF/oO5p6CZXOPWbmLWrAFd+0+1Tuq8BSh+PSdEREM3ZLOikkXoVzTKBgu4zpMvmBnjliBg7WhixkcG0v5WunlV9/oHAIpsKdL7AatU+oCPulp+xDpTKzRazEemYiWG9zYKzwSMk9Nc17e2tk+EtFSPsPo4iVCXMgdIZSTNBvynKEFXZQVPWVa+bYRdAmbSY8awiX7exxYL10UcpnN2q/AH/F7rQzAmo8eZ3OtD0+3Nk3JRx0/CMyzKLPYDpdUgwmaPb+s2Bsy7f7TfmA7jTa69YqB1/zVwlWULr0=
150 5544af8622863796a0027566f6b646e10d522c4c 0 iQIcBAABCAAGBQJZjJflAAoJELnJ3IJKpb3V19kQALCvTdPrpce5+rBNbFtLGNFxTMDol1dUy87EUAWiArnfOzW3rKBdYxvxDL23BpgUfjRm1fAXdayVvlj6VC6Dyb195OLmc/I9z7SjFxsfmxWilF6U0GIa3W0x37i05EjfcccrBIuSLrvR6AWyJhjLOBCcyAqD/HcEom00/L+o2ry9CDQNLEeVuNewJiupcUqsTIG2yS26lWbtLZuoqS2T4Nlg8wjJhiSXlsZSuAF55iUJKlTQP6KyWReiaYuEVfm/Bybp0A2bFcZCYpWPwnwKBdSCHhIalH8PO57gh9J7xJVnyyBg5PU6n4l6PrGOmKhNiU/xyNe36tEAdMW6svcVvt8hiY0dnwWqR6wgnFFDu0lnTMUcjsy5M5FBY6wSw9Fph8zcNRzYyaeUbasNonPvrIrk21nT3ET3RzVR3ri2nJDVF+0GlpogGfk9k7wY3808091BMsyV3448ZPKQeWiK4Yy4UOUwbKV7YAsS5MdDnC1uKjl4GwLn9UCY/+Q2/2R0CBZ13Tox+Nbo6hBRuRGtFIbLK9j7IIUhhZrIZFSh8cDNkC+UMaS52L5z7ECvoYIUpw+MJ7NkMLHIVGZ2Nxn0C7IbGO6uHyR7D6bdNpxilU+WZStHk0ppZItRTm/htar4jifnaCI8F8OQNYmZ3cQhxx6qV2Tyow8arvWb1NYXrocG
151 943c91326b23954e6e1c6960d0239511f9530258 0 iQIcBAABCAAGBQJZjKKZAAoJELnJ3IJKpb3VGQkP/0iF6Khef0lBaRhbSAPwa7RUBb3iaBeuwmeic/hUjMoU1E5NR36bDDaF3u2di5mIYPBONFIeCPf9/DKyFkidueX1UnlAQa3mjh/QfKTb4/yO2Nrk7eH+QtrYxVUUYYjwgp4rS0Nd/++I1IUOor54vqJzJ7ZnM5O1RsE7VI1esAC/BTlUuO354bbm08B0owsZBwVvcVvpV4zeTvq5qyPxBJ3M0kw83Pgwh3JZB9IYhOabhSUBcA2fIPHgYGYnJVC+bLOeMWI1HJkJeoYfClNUiQUjAmi0cdTC733eQnHkDw7xyyFi+zkKu6JmU1opxkHSuj4Hrjul7Gtw3vVWWUPufz3AK7oymNp2Xr5y1HQLDtNJP3jicTTG1ae2TdX5Az3ze0I8VGbpR81/6ShAvY2cSKttV3I+2k4epxTTTf0xaZS1eUdnFOox6acElG2reNzx7EYYxpHj17K8N2qNzyY78iPgbJ+L39PBFoiGXMZJqWCxxIHoK1MxlXa8WwSnsXAU768dJvEn2N1x3fl+aeaWzeM4/5Qd83YjFuCeycuRnIo3rejSX3rWFAwZE0qQHKI5YWdKDLxIfdHTjdfMP7np+zLcHt0DV/dHmj2hKQgU0OK04fx7BrmdS1tw67Y9bL3H3TDohn7khU1FrqrKVuqSLbLsxnNyWRbZQF+DCoYrHlIW
@@ -160,3 +160,5 bb96d4a497432722623ae60d9bc734a1e360179e
160 160 c850f0ed54c1d42f9aa079ad528f8127e5775217 4.2.1
161 161 26c49ed51a698ec016d2b4c6b44ca3c3f73cc788 4.2.2
162 162 857876ebaed4e315f63157bd157d6ce553c7ab73 4.3-rc
163 5544af8622863796a0027566f6b646e10d522c4c 4.3
164 943c91326b23954e6e1c6960d0239511f9530258 4.2.3
@@ -4,14 +4,14 Mercurial
4 4 Mercurial is a fast, easy to use, distributed revision control tool
5 5 for software developers.
6 6
7 Basic install:
7 Basic install::
8 8
9 9 $ make # see install targets
10 10 $ make install # do a system-wide install
11 11 $ hg debuginstall # sanity-check setup
12 12 $ hg # see help
13 13
14 Running without installing:
14 Running without installing::
15 15
16 16 $ make local # build for inplace usage
17 17 $ ./hg --version # should show the latest version
@@ -5,7 +5,7 SRCS = chg.c hgclient.c procutil.c util.
5 5 OBJS = $(SRCS:.c=.o)
6 6
7 7 CFLAGS ?= -O2 -Wall -Wextra -pedantic -g
8 CPPFLAGS ?= -D_FORTIFY_SOURCE=2
8 CPPFLAGS ?= -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE
9 9 override CFLAGS += -std=gnu99
10 10 ifdef HGPATH
11 11 override CPPFLAGS += -DHGPATH=\"$(HGPATH)\"
@@ -1,4 +1,7
1 1 FROM centos:centos5
2 RUN sed -i 's/^mirrorlist/#mirrorlist/' /etc/yum.repos.d/*.repo
3 RUN sed -i 's/^#\(baseurl=\)http:\/\/mirror.centos.org\/centos/\1http:\/\/vault.centos.org/' /etc/yum.repos.d/*.repo
4 RUN sed -i 's/\$releasever/5.11/' /etc/yum.repos.d/*.repo
2 5 RUN yum install -y gcc make rpm-build gettext tar
3 6 RUN yum install -y python-devel python-docutils
4 7 # For creating repo meta data
@@ -472,7 +472,7 class rebaseruntime(object):
472 472 commitmsg = self.collapsemsg
473 473 else:
474 474 commitmsg = 'Collapsed revision'
475 for rebased in self.state:
475 for rebased in sorted(self.state):
476 476 if rebased not in self.skipped and\
477 477 self.state[rebased] > nullmerge:
478 478 commitmsg += '\n* %s' % repo[rebased].description()
@@ -112,14 +112,20 def docstrings(path):
112 112
113 113 for func, rstrip in functions:
114 114 if func.__doc__:
115 funcmod = inspect.getmodule(func)
116 extra = ''
117 if funcmod.__package__ == funcmod.__name__:
118 extra = '/__init__'
119 actualpath = '%s%s.py' % (funcmod.__name__.replace('.', '/'), extra)
120
115 121 src = inspect.getsource(func)
116 name = "%s.%s" % (path, func.__name__)
122 name = "%s.%s" % (actualpath, func.__name__)
117 123 lineno = inspect.getsourcelines(func)[1]
118 124 doc = func.__doc__
119 125 if rstrip:
120 126 doc = doc.rstrip()
121 127 lineno += offset(src, doc, name, 1)
122 print(poentry(path, lineno, doc))
128 print(poentry(actualpath, lineno, doc))
123 129
124 130
125 131 def rawtext(path):
@@ -26,6 +26,7 from . import (
26 26 changelog,
27 27 copies,
28 28 crecord as crecordmod,
29 dirstateguard,
29 30 encoding,
30 31 error,
31 32 formatter,
@@ -2889,14 +2890,23 def commit(ui, repo, commitfunc, pats, o
2889 2890 message = logmessage(ui, opts)
2890 2891 matcher = scmutil.match(repo[None], pats, opts)
2891 2892
2893 dsguard = None
2892 2894 # extract addremove carefully -- this function can be called from a command
2893 2895 # that doesn't support addremove
2894 if opts.get('addremove'):
2895 if scmutil.addremove(repo, matcher, "", opts) != 0:
2896 raise error.Abort(
2897 _("failed to mark all new/missing files as added/removed"))
2898
2899 return commitfunc(ui, repo, message, matcher, opts)
2896 try:
2897 if opts.get('addremove'):
2898 dsguard = dirstateguard.dirstateguard(repo, 'commit')
2899 if scmutil.addremove(repo, matcher, "", opts) != 0:
2900 raise error.Abort(
2901 _("failed to mark all new/missing files as added/removed"))
2902
2903 r = commitfunc(ui, repo, message, matcher, opts)
2904 if dsguard:
2905 dsguard.close()
2906 return r
2907 finally:
2908 if dsguard:
2909 dsguard.release()
2900 2910
2901 2911 def samefile(f, ctx1, ctx2):
2902 2912 if f in ctx1.manifest():
@@ -828,6 +828,7 def _dispatch(req):
828 828 color.setup(ui_)
829 829
830 830 if util.parsebool(options['pager']):
831 # ui.pager() expects 'internal-always-' prefix in this case
831 832 ui.pager('internal-always-' + cmd)
832 833 elif options['pager'] != 'auto':
833 834 ui.disablepager()
@@ -16,6 +16,7 import shlex
16 16 import sys
17 17
18 18 ispy3 = (sys.version_info[0] >= 3)
19 ispypy = (r'__pypy__' in sys.builtin_module_names)
19 20
20 21 if not ispy3:
21 22 import cookielib
@@ -945,8 +945,14 class ui(object):
945 945 not "history, "summary" not "summ", etc.
946 946 """
947 947 if (self._disablepager
948 or self.pageractive
949 or command in self.configlist('pager', 'ignore')
948 or self.pageractive):
949 # how pager should do is already determined
950 return
951
952 if not command.startswith('internal-always-') and (
953 # explicit --pager=on (= 'internal-always-' prefix) should
954 # take precedence over disabling factors below
955 command in self.configlist('pager', 'ignore')
950 956 or not self.configbool('ui', 'paginate')
951 957 or not self.configbool('pager', 'attend-' + command, True)
952 958 # TODO: if we want to allow HGPLAINEXCEPT=pager,
@@ -1209,6 +1215,7 class ui(object):
1209 1215 # call write() so output goes through subclassed implementation
1210 1216 # e.g. color extension on Windows
1211 1217 self.write(prompt, prompt=True)
1218 self.flush()
1212 1219
1213 1220 # instead of trying to emulate raw_input, swap (self.fin,
1214 1221 # self.fout) with (sys.stdin, sys.stdout)
@@ -584,6 +584,14 class sortdict(collections.OrderedDict):
584 584 del self[key]
585 585 super(sortdict, self).__setitem__(key, value)
586 586
587 if pycompat.ispypy:
588 # __setitem__() isn't called as of PyPy 5.8.0
589 def update(self, src):
590 if isinstance(src, dict):
591 src = src.iteritems()
592 for k, v in src:
593 self[k] = v
594
587 595 @contextlib.contextmanager
588 596 def acceptintervention(tr=None):
589 597 """A context manager that closes the transaction on InterventionRequired
@@ -41,6 +41,9 filediff(){
41 41 diff -u "$file1" "$file2" |
42 42 sed "s@^--- /dev/null\(.*\)\$@--- $1\1@" |
43 43 sed "s@^\+\+\+ /dev/null\(.*\)\$@+++ $2\1@"
44
45 # in this case, files differ from each other
46 return 1
44 47 }
45 48
46 49 if test -d "$1" -o -d "$2"; then
@@ -53,6 +56,14 if test -d "$1" -o -d "$2"; then
53 56 while read file; do
54 57 filediff "$1/$file" "$2/$file" "diff -Nru $1/$file $2/$file"
55 58 done
59
60 # TODO: there is no portable way for current while-read based
61 # implementation to return 1 at detecting changes.
62 #
63 # On bash and dash, assignment to variable inside while-block
64 # doesn't affect outside, because inside while-block is executed
65 # in sub-shell. BTW, it affects outside while-block on ksh (as sh
66 # on Solaris).
56 67 else
57 68 filediff "$1" "$2"
58 69 fi
@@ -47,21 +47,21 Make a helper function to check cache da
47 47 > echo bad > $CACHE
48 48 > test -z "$CLEAN" || $CLEAN
49 49 > hg $CMD > after
50 > diff -u before after || echo "*** overwrite corruption"
50 > "$RUNTESTDIR/pdiff" before after || echo "*** overwrite corruption"
51 51 > echo corruption >> $CACHE
52 52 > test -z "$CLEAN" || $CLEAN
53 53 > hg $CMD > after
54 > diff -u before after || echo "*** append corruption"
54 > "$RUNTESTDIR/pdiff" before after || echo "*** append corruption"
55 55 > rm $CACHE
56 56 > mkdir $CACHE
57 57 > test -z "$CLEAN" || $CLEAN
58 58 > hg $CMD > after
59 > diff -u before after || echo "*** read-only corruption"
59 > "$RUNTESTDIR/pdiff" before after || echo "*** read-only corruption"
60 60 > test -d $CACHE || echo "*** directory clobbered"
61 61 > rmdir $CACHE
62 62 > test -z "$CLEAN" || $CLEAN
63 63 > hg $CMD > after
64 > diff -u before after || echo "*** missing corruption"
64 > "$RUNTESTDIR/pdiff" before after || echo "*** missing corruption"
65 65 > test -f $CACHE || echo "not rebuilt"
66 66 > }
67 67
@@ -147,6 +147,18 Using the advanced --extra flag
147 147 oldhash=bar
148 148 sourcehash=foo
149 149
150 Failed commit with --addremove should not update dirstate
151
152 $ echo foo > newfile
153 $ hg status
154 ? newfile
155 $ HGEDITOR=false hg ci --addremove
156 adding newfile
157 abort: edit failed: false exited with status 1
158 [255]
159 $ hg status
160 ? newfile
161
150 162 Make sure we do not obscure unknown requires file entries (issue2649)
151 163
152 164 $ echo foo >> foo
@@ -263,8 +263,16 Prepare custom diff/edit tool:
263 263 will change to /tmp/extdiff.TMP and populate directories a.TMP and a
264 264 and start tool
265 265
266 #if windows
267 $ cat > 'diff tool.bat' << EOF
268 > @$PYTHON "`pwd`/diff tool.py"
269 > EOF
270 $ hg extdiff -p "`pwd`/diff tool.bat"
271 [1]
272 #else
266 273 $ hg extdiff -p "`pwd`/diff tool.py"
267 274 [1]
275 #endif
268 276
269 277 Diff in working directory, after:
270 278
@@ -245,6 +245,7 Check absolute/relative import of extens
245 245
246 246 #if no-py3k
247 247 $ rm "$TESTTMP"/extroot/foo.*
248 $ rm -Rf "$TESTTMP/extroot/__pycache__"
248 249 $ cat > $TESTTMP/extroot/foo.py <<EOF
249 250 > # test relative import
250 251 > buf = []
@@ -1238,6 +1239,7 empty declaration of supported version,
1238 1239 If the extension specifies a buglink, show that:
1239 1240 $ echo 'buglink = "http://example.com/bts"' >> throw.py
1240 1241 $ rm -f throw.pyc throw.pyo
1242 $ rm -Rf __pycache__
1241 1243 $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1242 1244 ** Unknown exception encountered with possibly-broken third-party extension throw
1243 1245 ** which supports versions unknown of Mercurial.
@@ -1253,6 +1255,7 If the extensions declare outdated versi
1253 1255 $ echo "testedwith = '1.9.3'" >> older.py
1254 1256 $ echo "testedwith = '2.1.1'" >> throw.py
1255 1257 $ rm -f throw.pyc throw.pyo
1258 $ rm -Rf __pycache__
1256 1259 $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
1257 1260 > throw 2>&1 | egrep '^\*\*'
1258 1261 ** Unknown exception encountered with possibly-broken third-party extension older
@@ -1266,6 +1269,7 If the extensions declare outdated versi
1266 1269 One extension only tested with older, one only with newer versions:
1267 1270 $ echo "util.version = lambda:'2.1'" >> older.py
1268 1271 $ rm -f older.pyc older.pyo
1272 $ rm -Rf __pycache__
1269 1273 $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
1270 1274 > throw 2>&1 | egrep '^\*\*'
1271 1275 ** Unknown exception encountered with possibly-broken third-party extension older
@@ -1279,6 +1283,7 One extension only tested with older, on
1279 1283 Older extension is tested with current version, the other only with newer:
1280 1284 $ echo "util.version = lambda:'1.9.3'" >> older.py
1281 1285 $ rm -f older.pyc older.pyo
1286 $ rm -Rf __pycache__
1282 1287 $ hg --config extensions.throw=throw.py --config extensions.older=older.py \
1283 1288 > throw 2>&1 | egrep '^\*\*'
1284 1289 ** Unknown exception encountered with possibly-broken third-party extension throw
@@ -1305,6 +1310,7 Declare the version as supporting this h
1305 1310 > echo "unable to fetch a mercurial version. Make sure __version__ is correct";
1306 1311 > fi
1307 1312 $ rm -f throw.pyc throw.pyo
1313 $ rm -Rf __pycache__
1308 1314 $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1309 1315 ** unknown exception encountered, please report by visiting
1310 1316 ** https://mercurial-scm.org/wiki/BugTracker
@@ -1316,6 +1322,7 Patch version is ignored during compatib
1316 1322 $ echo "testedwith = '3.2'" >> throw.py
1317 1323 $ echo "util.version = lambda:'3.2.2'" >> throw.py
1318 1324 $ rm -f throw.pyc throw.pyo
1325 $ rm -Rf __pycache__
1319 1326 $ hg --config extensions.throw=throw.py throw 2>&1 | egrep '^\*\*'
1320 1327 ** unknown exception encountered, please report by visiting
1321 1328 ** https://mercurial-scm.org/wiki/BugTracker
@@ -1326,6 +1333,7 Patch version is ignored during compatib
1326 1333 Test version number support in 'hg version':
1327 1334 $ echo '__version__ = (1, 2, 3)' >> throw.py
1328 1335 $ rm -f throw.pyc throw.pyo
1336 $ rm -Rf __pycache__
1329 1337 $ hg version -v
1330 1338 Mercurial Distributed SCM (version *) (glob)
1331 1339 (see https://mercurial-scm.org for more information)
@@ -1350,6 +1358,7 Test version number support in 'hg versi
1350 1358 throw external 1.2.3
1351 1359 $ echo 'getversion = lambda: "1.twentythree"' >> throw.py
1352 1360 $ rm -f throw.pyc throw.pyo
1361 $ rm -Rf __pycache__
1353 1362 $ hg version -v --config extensions.throw=throw.py --config extensions.strip=
1354 1363 Mercurial Distributed SCM (version *) (glob)
1355 1364 (see https://mercurial-scm.org for more information)
@@ -1674,7 +1683,7 Make sure a broken uisetup doesn't globa
1674 1683
1675 1684 Even though the extension fails during uisetup, hg is still basically usable:
1676 1685 $ hg version
1677 *** failed to set up extension baduisetup: No module named bdiff
1686 \*\*\* failed to set up extension baduisetup: No module named (mercurial\.)?bdiff (re)
1678 1687 Mercurial Distributed SCM (version *) (glob)
1679 1688 (see https://mercurial-scm.org for more information)
1680 1689
@@ -1696,8 +1705,8 Even though the extension fails during u
1696 1705 mod = _hgextimport(_origimport, head, globals, locals, None, level)
1697 1706 File "*/hgdemandimport/demandimportpy2.py", line *, in _hgextimport (glob)
1698 1707 return importfunc(name, globals, *args, **kwargs)
1699 ImportError: No module named bdiff
1700 *** failed to set up extension baduisetup: No module named bdiff
1708 ImportError: No module named (mercurial\.)?bdiff (re)
1709 \*\*\* failed to set up extension baduisetup: No module named (mercurial\.)?bdiff (re)
1701 1710 Mercurial Distributed SCM (version *) (glob)
1702 1711 (see https://mercurial-scm.org for more information)
1703 1712
@@ -152,6 +152,7
152 152 $ hg commit -Aqm 'fail+base64+gzip+noop'
153 153 abort: missing processor for flag '0x1'!
154 154 [255]
155 $ rm fail-base64-gzip-noop
155 156
156 157 # TEST: ensure we cannot register several flag processors on the same flag
157 158 $ cat >> .hg/hgrc << EOF
@@ -159,11 +160,11
159 160 > extension=$TESTDIR/flagprocessorext.py
160 161 > duplicate=$TESTDIR/flagprocessorext.py
161 162 > EOF
162 $ echo 'this should fail' > file
163 $ hg commit -Aqm 'add file'
163 $ hg debugrebuilddirstate
164 164 *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
165 abort: missing processor for flag '0x1'!
166 [255]
165 $ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext'
166 *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
167 File "*/tests/flagprocessorext.py", line *, in b64decode (glob)
167 168
168 169 $ cd ..
169 170
@@ -80,6 +80,34 We can control the pager from the config
80 80 paged! 'summary: modify a 10\n'
81 81 paged! '\n'
82 82
83 explicit --pager=on should take precedence over other configurations
84 (issue5580)
85
86 $ cat >> $HGRCPATH <<EOF
87 > [ui]
88 > paginate = false
89 > EOF
90 $ hg log --limit 1 --pager=on
91 paged! 'changeset: 10:46106edeeb38\n'
92 paged! 'tag: tip\n'
93 paged! 'user: test\n'
94 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
95 paged! 'summary: modify a 10\n'
96 paged! '\n'
97
98 $ cat >> $HGRCPATH <<EOF
99 > [ui]
100 > # true is default value of ui.paginate
101 > paginate = true
102 > EOF
103 $ hg log --limit 1 --pager=off
104 changeset: 10:46106edeeb38
105 tag: tip
106 user: test
107 date: Thu Jan 01 00:00:00 1970 +0000
108 summary: modify a 10
109
110
83 111 We can enable the pager on id:
84 112
85 113 BROKEN: should be paged
@@ -312,6 +312,7 of which length of byte sequence and col
312 312 from each other.
313 313
314 314 $ rm -f loop.pyc
315 $ rm -Rf __pycache__
315 316 $ cat >> loop.py <<EOF
316 317 > # use non-ascii characters as loop items of progress
317 318 > loopitems = [
@@ -144,12 +144,18 def lowlevelcopy(rlog, tr, destname=b'_d
144 144 text = None
145 145 cachedelta = (deltaparent, rlog.revdiff(deltaparent, r))
146 146 flags = rlog.flags(r)
147 ifh = dlog.opener(dlog.indexfile, 'a+')
148 dfh = None
149 if not dlog._inline:
150 dfh = dlog.opener(dlog.datafile, 'a+')
151 dlog._addrevision(rlog.node(r), text, tr, r, p1, p2, flags, cachedelta,
152 ifh, dfh)
147 ifh = dfh = None
148 try:
149 ifh = dlog.opener(dlog.indexfile, 'a+')
150 if not dlog._inline:
151 dfh = dlog.opener(dlog.datafile, 'a+')
152 dlog._addrevision(rlog.node(r), text, tr, r, p1, p2, flags,
153 cachedelta, ifh, dfh)
154 finally:
155 if dfh is not None:
156 dfh.close()
157 if ifh is not None:
158 ifh.close()
153 159 return dlog
154 160
155 161 # Utilities to generate revisions for testing
@@ -14,10 +14,12
14 14 $ rm .hg/hgrc
15 15
16 16 $ HGUSER=`(echo foo; echo bar2)` hg ci -Am m
17 adding a
17 18 abort: username 'foo\nbar2' contains a newline
18 19
19 20 [255]
20 21 $ hg ci -Am m -u "`(echo foo; echo bar3)`"
22 adding a
21 23 transaction abort!
22 24 rollback completed
23 25 abort: username 'foo\nbar3' contains a newline!
General Comments 0
You need to be logged in to leave comments. Login now