--- a/.hgsigs Mon Jan 07 15:25:41 2019 -0800
+++ b/.hgsigs Mon Jan 07 19:03:23 2019 -0500
@@ -173,3 +173,4 @@
956ec6f1320df26f3133ec40f3de866ea0695fd7 0 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
--- a/.hgtags Mon Jan 07 15:25:41 2019 -0800
+++ b/.hgtags Mon Jan 07 19:03:23 2019 -0500
@@ -186,3 +186,4 @@
956ec6f1320df26f3133ec40f3de866ea0695fd7 4.8rc0
a91a2837150bdcb27ae76b3646e6c93cd6a15904 4.8
1c8c54cf97256f4468da2eb4dbee24f7f3888e71 4.8.1
+197f092b2cd9691e2a55d198f717b231af9be6f9 4.8.2
--- a/mercurial/cext/revlog.c Mon Jan 07 15:25:41 2019 -0800
+++ b/mercurial/cext/revlog.c Mon Jan 07 19:03:23 2019 -0500
@@ -992,6 +992,13 @@
rev, result);
return -2;
}
+ if (result < -1) {
+ PyErr_Format(
+ PyExc_ValueError,
+ "corrupted revlog, revision base out of range: %d, %d",
+ rev, result);
+ return -2;
+ }
return result;
}
--- a/mercurial/commands.py Mon Jan 07 15:25:41 2019 -0800
+++ b/mercurial/commands.py Mon Jan 07 19:03:23 2019 -0500
@@ -6098,7 +6098,7 @@
brev = rev
if rev:
repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn')
- ctx = scmutil.revsingle(repo, rev, rev)
+ ctx = scmutil.revsingle(repo, rev, default=None)
rev = ctx.rev()
hidden = ctx.hidden()
overrides = {('ui', 'forcemerge'): opts.get(r'tool', '')}
--- a/mercurial/hgweb/server.py Mon Jan 07 15:25:41 2019 -0800
+++ b/mercurial/hgweb/server.py Mon Jan 07 19:03:23 2019 -0500
@@ -127,6 +127,13 @@
and not path.startswith(self.server.prefix + b'/')):
self._start_response(pycompat.strurl(common.statusmessage(404)),
[])
+ if self.command == 'POST':
+ # Paranoia: tell the client we're going to close the
+ # socket so they don't try and reuse a socket that
+ # might have a POST body waiting to confuse us. We do
+ # this by directly munging self.saved_headers because
+ # self._start_response ignores Connection headers.
+ self.saved_headers = [(r'Connection', r'Close')]
self._write(b"Not Found")
self._done()
return
--- a/mercurial/match.py Mon Jan 07 15:25:41 2019 -0800
+++ b/mercurial/match.py Mon Jan 07 19:03:23 2019 -0500
@@ -48,7 +48,7 @@
for kind, pat, source in kindpats:
if kind == 'set':
- if not ctx:
+ if ctx is None:
raise error.ProgrammingError("fileset expression with no "
"context")
matchers.append(ctx.matchfileset(pat, badfn=badfn))
--- a/mercurial/templatekw.py Mon Jan 07 15:25:41 2019 -0800
+++ b/mercurial/templatekw.py Mon Jan 07 19:03:23 2019 -0500
@@ -586,7 +586,7 @@
@templatekeyword("predecessors", requires={'repo', 'ctx'})
def showpredecessors(context, mapping):
- """Returns the list if the closest visible successors. (EXPERIMENTAL)"""
+ """Returns the list of the closest visible successors. (EXPERIMENTAL)"""
repo = context.resource(mapping, 'repo')
ctx = context.resource(mapping, 'ctx')
predecessors = sorted(obsutil.closestpredecessors(repo, ctx.node()))
@@ -624,7 +624,7 @@
@templatekeyword("successorssets", requires={'repo', 'ctx'})
def showsuccessorssets(context, mapping):
"""Returns a string of sets of successors for a changectx. Format used
- is: [ctx1, ctx2], [ctx3] if ctx has been splitted into ctx1 and ctx2
+ is: [ctx1, ctx2], [ctx3] if ctx has been split into ctx1 and ctx2
while also diverged into ctx3. (EXPERIMENTAL)"""
repo = context.resource(mapping, 'repo')
ctx = context.resource(mapping, 'ctx')
--- a/tests/test-locate.t Mon Jan 07 15:25:41 2019 -0800
+++ b/tests/test-locate.t Mon Jan 07 19:03:23 2019 -0500
@@ -156,6 +156,11 @@
$ hg files .
[1]
+Fileset at null (i.e. a falsy context) shouldn't crash (issue6046)
+
+ $ hg files -r null 'set:tracked()'
+ [1]
+
Convert native path separator to slash (issue5572)
$ hg files -T '{path|relpath|slashpath}\n'
--- a/tests/test-simple-update.t Mon Jan 07 15:25:41 2019 -0800
+++ b/tests/test-simple-update.t Mon Jan 07 19:03:23 2019 -0500
@@ -57,6 +57,26 @@
abort: you can't specify a revision and a date
[255]
+update to default destination (with empty revspec)
+
+ $ hg update -q null
+ $ hg update
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg id
+ 30aff43faee1 tip
+
+ $ hg update -q null
+ $ hg update -r ''
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg id
+ 30aff43faee1 tip
+
+ $ hg update -q null
+ $ hg update ''
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg id
+ 30aff43faee1 tip
+
$ cd ..
update with worker processes