merge with stable
authorAugie Fackler <augie@google.com>
Fri, 02 Nov 2018 14:24:29 -0400
changeset 40460 4fe63b573791
parent 40457 c2a0bc6412db (current diff)
parent 40459 5eaa5eb0db4e (diff)
child 40461 c7618901584d
merge with stable
hgext/sqlitestore.py
mercurial/cext/revlog.c
mercurial/configitems.py
mercurial/help.py
mercurial/revlog.py
mercurial/utils/storageutil.py
--- a/.hgsigs	Sat Oct 13 01:55:40 2018 -0700
+++ b/.hgsigs	Fri Nov 02 14:24:29 2018 -0400
@@ -170,3 +170,5 @@
 33ac6a72308a215e6086fbced347ec10aa963b0a 0 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
+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
--- a/.hgtags	Sat Oct 13 01:55:40 2018 -0700
+++ b/.hgtags	Fri Nov 02 14:24:29 2018 -0400
@@ -183,3 +183,5 @@
 33ac6a72308a215e6086fbced347ec10aa963b0a 4.7
 ede3bf31fe63677fdf5bd8db687977d4e3d792ed 4.7.1
 5405cb1a79010ac50c58cd84e6f50c4556bf2a4c 4.7.2
+956ec6f1320df26f3133ec40f3de866ea0695fd7 4.8rc0
+a91a2837150bdcb27ae76b3646e6c93cd6a15904 4.8
--- a/contrib/relnotes	Sat Oct 13 01:55:40 2018 -0700
+++ b/contrib/relnotes	Fri Nov 02 14:24:29 2018 -0400
@@ -9,11 +9,6 @@
 import re
 import subprocess
 
-# Regenerate this list with
-#   hg export 'grep("\.\. [a-z]+::")' | grep '^\.\.' | \
-#     sed 's/.. //;s/::.*//' | sort -u
-rnsections = ["api", "bc", "container", "feature", "fix", "note", "perf"]
-
 rules = {
     # keep
     r"\(issue": 100,
@@ -26,27 +21,37 @@
     r"(mq|shelve|rebase):": 20,
     # newsy
     r": deprecate": 20,
-    r"(option|feature|command|support)": 10,
+    r"( ability|command|feature|option|support)": 10,
+    # experimental
+    r"hg-experimental": 20,
+    r"(from|graduate).*experimental": 15,
+    r"(hide|mark).*experimental": -10,
     # bug-like?
     r"(fix|don't break|improve)": 7,
+    r"(not|n't|avoid|fix|prevent).*crash": 10,
     # boring stuff, bump down
     r"^contrib": -5,
     r"debug": -5,
     r"help": -5,
-    r"(doc|bundle2|obsolete|obsmarker|rpm|setup|debug\S+:)": -15,
-    r"(check-code|check-commit|import-checker)": -20,
+    r"(doc|metavar|bundle2|obsolete|obsmarker|rpm|setup|debug\S+:)": -15,
+    r"(check-code|check-commit|check-config|import-checker)": -20,
+    r"(flake8|lintian|pyflakes|pylint)": -20,
     # cleanups and refactoring
-    r"(cleanup|whitespace|nesting|indent|spelling|comment)": -20,
-    r"(typo|hint|note|style:|correct doc)": -20,
+    r"(cleanup|white ?space|spelling|quoting)": -20,
+    r"(flatten|dedent|indent|nesting|unnest)": -20,
+    r"(typo|hint|note|comment|TODO|FIXME)": -20,
+    r"(style:|convention|one-?liner)": -20,
     r"_": -10,
     r"(argument|absolute_import|attribute|assignment|mutable)": -15,
-    r"(unused|useless|unnecessary|duplicate|deprecated|scope|True|False)": -10,
+    r"(scope|True|False)": -10,
+    r"(unused|useless|unnecessary|superfluous|duplicate|deprecated)": -10,
     r"(redundant|pointless|confusing|uninitialized|meaningless|dead)": -10,
-    r": (drop|remove|inherit|rename|simplify|naming|inline)": -10,
-    r"(docstring|document .* method)": -20,
-    r"(factor|extract|prepare|split|replace| import)": -20,
-    r": add.*(function|method|implementation|test|example)": -10,
-    r": (move|extract) .* (to|into|from)": -20,
+    r": (drop|remove|delete|rip out)": -10,
+    r": (inherit|rename|simplify|naming|inline)": -10,
+    r"(correct doc|docstring|document .* method)": -20,
+    r"(abstract|factor|extract|prepare|split|replace| import)": -20,
+    r": add.*(function|method|implementation|example)": -10,
+    r": (move|extract) .* (to|into|from|out of)": -20,
     r": implement ": -5,
     r": use .* implementation": -20,
     r"\S\S\S+\.\S\S\S\S+": -5,
@@ -55,15 +60,20 @@
     # dumb keywords
     r"\S+/\S+:": -10,
     r"\S+\.\S+:": -10,
+    # python compatibility
+    r"[Pp]y(|thon) ?[23]": -20,
+    r"pycompat": -20,
+    r"(coerce|convert|encode) .*to (byte|sys|)(s|str|string)": -20,
+    # tests
+    r"^test(|s|ing|runner|-\S+):": -20,
+    r"^(f|hghave|run-tests):": -20,
+    r"add.* tests?": -20,
+    r"(buildbot|fuzz|mock|ratchet)": -10,
     # drop
     r"^i18n-": -50,
     r"^i18n:.*(hint|comment)": -50,
     r"perf:": -50,
-    r"check-code:": -50,
     r"Added.*for changeset": -50,
-    r"tests?:": -50,
-    r"test-": -50,
-    r"add.* tests": -50,
     r"^_": -50,
 }
 
@@ -72,9 +82,9 @@
 
 groupings = [
     (r"util|parsers|repo|ctx|context|revlog|filelog|alias|cmdutil", "core"),
-    (r"revset|templater|ui|dirstate|hook|i18n|transaction|wire", "core"),
-    (r"color|pager", "core"),
-    (r"hgweb|paper|coal|gitweb", "hgweb"),
+    (r"revset|template|ui|dirstate|hook|i18n|transaction|wire|vfs", "core"),
+    (r"dispatch|exchange|localrepo|streamclone|color|pager", "core"),
+    (r"hgweb|paper|coal|gitweb|monoblue|spartan", "hgweb"),
     (r"pull|push|revert|resolve|annotate|bookmark|branch|clone", "commands"),
     (r"commands|commit|config|files|graft|import|log|merge|patch", "commands"),
     (r"phases|status|summary|amend|tag|help|verify", "commands"),
@@ -83,12 +93,12 @@
 ]
 
 def main():
-    ap = argparse.ArgumentParser()
+    desc = "example: %(prog)s 4.7.2 --stoprev 4.8rc0"
+    ap = argparse.ArgumentParser(description=desc)
     ap.add_argument(
         "startrev",
         metavar="REV",
         type=str,
-        nargs=1,
         help=(
             "Starting revision for the release notes. This revision "
             "won't be included, but later revisions will."
@@ -99,7 +109,6 @@
         metavar="REV",
         type=str,
         default="@",
-        nargs=1,
         help=(
             "Stop revision for release notes. This revision will be included,"
             " but no later revisions will. This revision needs to be "
@@ -114,7 +123,7 @@
             "extensions.releasenotes=",
             "releasenotes",
             "-r",
-            "%s::%s" % (args.startrev[0], args.stoprev[0]),
+            "only(%s, %s)" % (args.stoprev, args.startrev),
         ]
     ).decode("utf-8")
     # Find all release notes from un-relnotes-flagged commits.
@@ -124,8 +133,7 @@
                 "hg",
                 "log",
                 "-r",
-                r'%s::%s - merge() - grep("\n\.\. (%s)::")'
-                % (args.startrev[0], args.stoprev[0], "|".join(rnsections)),
+                "only(%s, %s) - merge()" % (args.stoprev, args.startrev),
                 "-T",
                 r"{desc|firstline}\n",
             ]
@@ -167,12 +175,14 @@
         for d in sorted(groups[g]):
             print(" * %s" % d)
 
-    print("\n=== BC ===\n")
+    if bcs:
+        print("\n=== Behavior Changes ===\n")
 
     for d in sorted(bcs):
         print(" * %s" % d)
 
-    print("\n=== API Changes ===\n")
+    if apis:
+        print("\n=== Internal API Changes ===\n")
 
     for d in sorted(apis):
         print(" * %s" % d)
--- a/hgext/fix.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/hgext/fix.py	Fri Nov 02 14:24:29 2018 -0400
@@ -157,7 +157,8 @@
                 # Don't waste memory/time passing unchanged content back, but
                 # produce one result per item either way.
                 yield (rev, path, newdata if newdata != olddata else None)
-        results = worker.worker(ui, 1.0, getfixes, tuple(), workqueue)
+        results = worker.worker(ui, 1.0, getfixes, tuple(), workqueue,
+                                threadsafe=False)
 
         # We have to hold on to the data for each successor revision in memory
         # until all its parents are committed. We ensure this by committing and
--- a/hgext/sqlitestore.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/hgext/sqlitestore.py	Fri Nov 02 14:24:29 2018 -0400
@@ -561,7 +561,7 @@
     def emitrevisions(self, nodes, nodesorder=None, revisiondata=False,
                       assumehaveparentrevisions=False,
                       deltamode=repository.CG_DELTAMODE_STD):
-        if nodesorder not in ('nodes', 'storage', None):
+        if nodesorder not in ('nodes', 'storage', 'linear', None):
             raise error.ProgrammingError('unhandled value for nodesorder: %s' %
                                          nodesorder)
 
--- a/mercurial/bundle2.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/bundle2.py	Fri Nov 02 14:24:29 2018 -0400
@@ -1691,8 +1691,8 @@
     includepats = kwargs.get(r'includepats')
     excludepats = kwargs.get(r'excludepats')
 
-    narrowstream = repo.ui.configbool('experimental.server',
-                                      'stream-narrow-clones')
+    narrowstream = repo.ui.configbool('experimental',
+                                      'server.stream-narrow-clones')
 
     if (includepats or excludepats) and not narrowstream:
         raise error.Abort(_('server does not support narrow stream clones'))
--- a/mercurial/cext/revlog.c	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/cext/revlog.c	Fri Nov 02 14:24:29 2018 -0400
@@ -2317,7 +2317,7 @@
 	/* to pass index_get_parents() */
 	int (*)(indexObject *, Py_ssize_t, int*, int),
 	/* intrevs vector */
-	int initrevslen, long *initrevs,
+	Py_ssize_t initrevslen, long *initrevs,
 	long stoprev,
 	int inclusive);
 void rustlazyancestors_drop(rustlazyancestorsObject *self);
--- a/mercurial/configitems.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/configitems.py	Fri Nov 02 14:24:29 2018 -0400
@@ -613,7 +613,7 @@
 coreconfigitem('experimental', 'server.manifestdata.recommended-batch-size',
     default=100000,
 )
-coreconfigitem('experimental.server', 'stream-narrow-clones',
+coreconfigitem('experimental', 'server.stream-narrow-clones',
     default=False,
 )
 coreconfigitem('experimental', 'single-head-per-branch',
@@ -934,7 +934,7 @@
     default='hotpath',
 )
 coreconfigitem('profiling', 'time-track',
-    default='real',
+    default=dynamicdefault,
 )
 coreconfigitem('profiling', 'type',
     default='stat',
--- a/mercurial/copies.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/copies.py	Fri Nov 02 14:24:29 2018 -0400
@@ -219,6 +219,7 @@
 def _forwardcopies(a, b, match=None):
     """find {dst@b: src@a} copy mapping where a is an ancestor of b"""
 
+    match = a.repo().narrowmatch(match)
     # check for working copy
     if b.rev() is None:
         if a == b.p1():
@@ -510,8 +511,9 @@
         # unmatched file from topological common ancestors (no DAG rotation)
         # need to recompute this for directory move handling when grafting
         mta = tca.manifest()
-        u1u, u2u = _computenonoverlap(repo, c1, c2, m1.filesnotin(mta),
-                                                    m2.filesnotin(mta),
+        u1u, u2u = _computenonoverlap(repo, c1, c2,
+                                      m1.filesnotin(mta, repo.narrowmatch()),
+                                      m2.filesnotin(mta, repo.narrowmatch()),
                                       baselabel='topological common ancestor')
 
     for f in u1u:
--- a/mercurial/crecord.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/crecord.py	Fri Nov 02 14:24:29 2018 -0400
@@ -725,7 +725,7 @@
             nextitem = currentitem
         else:
             parent = nextitem.parentitem()
-            if parent.folded:
+            if parent is not None and parent.folded:
                 self.togglefolded(parent)
 
         self.currentselecteditem = nextitem
--- a/mercurial/exewrapper.c	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/exewrapper.c	Fri Nov 02 14:24:29 2018 -0400
@@ -25,7 +25,7 @@
 
 #define _tcscpy_s strcpy_s
 #define _tcscat_s strcat_s
-#define _countof(array) (sizeof(array)/sizeof(array[0]))
+#define _countof(array) (sizeof(array) / sizeof(array[0]))
 #endif
 
 static TCHAR pyscript[MAX_PATH + 10];
@@ -43,7 +43,7 @@
 	HANDLE hfind;
 	const char *err;
 	HMODULE pydll;
-	void(__cdecl * Py_SetPythonHome)(TCHAR *home);
+	void(__cdecl * Py_SetPythonHome)(TCHAR * home);
 	int(__cdecl * Py_Main)(int argc, TCHAR *argv[]);
 
 	if (GetModuleFileName(NULL, pyscript, _countof(pyscript)) == 0) {
@@ -86,11 +86,12 @@
 		scenario, so let's load python dll from this dir. */
 		FindClose(hfind);
 		_tcscpy_s(pydllfile, _countof(pydllfile), pyhome);
-		_tcscat_s(pydllfile, _countof(pydllfile), _T("\\") _T(HGPYTHONLIB)
-					_T(".dll"));
+		_tcscat_s(pydllfile, _countof(pydllfile),
+		          _T("\\") _T(HGPYTHONLIB) _T(".dll"));
 		pydll = LoadLibrary(pydllfile);
 		if (pydll == NULL) {
-			err = "failed to load private Python DLL " HGPYTHONLIB ".dll";
+			err = "failed to load private Python DLL " HGPYTHONLIB
+			      ".dll";
 			goto bail;
 		}
 		Py_SetPythonHome =
--- a/mercurial/help.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/help.py	Fri Nov 02 14:24:29 2018 -0400
@@ -9,6 +9,7 @@
 
 import itertools
 import os
+import re
 import textwrap
 
 from .i18n import (
@@ -30,6 +31,7 @@
     templatefilters,
     templatefuncs,
     templatekw,
+    ui as uimod,
     util,
 )
 from .hgweb import (
@@ -431,6 +433,16 @@
 addtopicsymbols('hgweb', '.. webcommandsmarker', webcommands.commands,
                 dedent=True)
 
+def inserttweakrc(ui, topic, doc):
+    marker = '.. tweakdefaultsmarker'
+    repl = uimod.tweakrc
+    def sub(m):
+        lines = [m.group(1) + s for s in repl.splitlines()]
+        return '\n'.join(lines)
+    return re.sub(br'( *)%s' % re.escape(marker), sub, doc)
+
+addtopichook('config', inserttweakrc)
+
 def help_(ui, commands, name, unknowncmd=False, full=True, subtopic=None,
           **opts):
     '''
--- a/mercurial/help/config.txt	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/help/config.txt	Fri Nov 02 14:24:29 2018 -0400
@@ -1715,7 +1715,7 @@
 
 ``time-track``
     Control if the stat profiler track ``cpu`` or ``real`` time.
-    (default: ``cpu``)
+    (default: ``cpu`` on Windows, otherwise ``real``)
 
 ``limit``
     Number of lines to show. Specific to the ``ls`` instrumenting profiler.
@@ -2370,6 +2370,10 @@
     effect if ``HGPLAIN`` is set or ``HGPLAINEXCEPT`` is set and does
     not include ``tweakdefaults``. (default: False)
 
+    It currently means::
+
+      .. tweakdefaultsmarker
+
 ``username``
     The committer of a changeset created when running "commit".
     Typically a person's name and email address, e.g. ``Fred Widget
--- a/mercurial/httppeer.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/httppeer.py	Fri Nov 02 14:24:29 2018 -0400
@@ -405,11 +405,15 @@
         return True
 
     def close(self):
+        try:
+            reqs, sent, recv = (self._urlopener.requestscount,
+                                self._urlopener.sentbytescount,
+                                self._urlopener.receivedbytescount)
+        except AttributeError:
+            return
         self.ui.note(_('(sent %d HTTP requests and %d bytes; '
                        'received %d bytes in responses)\n') %
-                     (self._urlopener.requestscount,
-                      self._urlopener.sentbytescount,
-                      self._urlopener.receivedbytescount))
+                     (reqs, sent, recv))
 
     # End of ipeerconnection interface.
 
--- a/mercurial/keepalive.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/keepalive.py	Fri Nov 02 14:24:29 2018 -0400
@@ -442,7 +442,10 @@
         data = self._raw_read(amt)
 
         self.receivedbytescount += len(data)
-        self._connection.receivedbytescount += len(data)
+        try:
+            self._connection.receivedbytescount += len(data)
+        except AttributeError:
+            pass
         try:
             self._handler.parent.receivedbytescount += len(data)
         except AttributeError:
--- a/mercurial/logexchange.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/logexchange.py	Fri Nov 02 14:24:29 2018 -0400
@@ -105,7 +105,7 @@
     # use the string given to us
     rpath = remote
     if local:
-        rpath = remote._repo.root
+        rpath = util.pconvert(remote._repo.root)
     elif not isinstance(remote, bytes):
         rpath = remote._url
 
@@ -113,6 +113,11 @@
     for path, url in repo.ui.configitems('paths'):
         # remove auth info from user defined url
         noauthurl = util.removeauth(url)
+
+        # Standardize on unix style paths, otherwise some {remotenames} end up
+        # being an absolute path on Windows.
+        url = util.pconvert(bytes(url))
+        noauthurl = util.pconvert(noauthurl)
         if url == rpath or noauthurl == rpath:
             rpath = path
             break
--- a/mercurial/phases.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/phases.py	Fri Nov 02 14:24:29 2018 -0400
@@ -129,11 +129,13 @@
 # record phase index
 public, draft, secret = range(3)
 internal = INTERNAL_FLAG | HIDEABLE_FLAG
+archived = HIDEABLE_FLAG
 allphases = range(internal + 1)
 trackedphases = allphases[1:]
 # record phase names
 phasenames = [None] * len(allphases)
 phasenames[:3] = ['public', 'draft', 'secret']
+phasenames[archived] = 'archived'
 phasenames[internal] = 'internal'
 # record phase property
 mutablephases = tuple(allphases[1:])
@@ -446,8 +448,9 @@
     def _retractboundary(self, repo, tr, targetphase, nodes):
         # Be careful to preserve shallow-copied values: do not update
         # phaseroots values, replace them.
-        if targetphase == internal and not supportinternal(repo):
-            msg = 'this repository does not support the internal phase'
+        if targetphase in (archived, internal) and not supportinternal(repo):
+            name = phasenames[targetphase]
+            msg = 'this repository does not support the %s phase' % name
             raise error.ProgrammingError(msg)
 
         repo = repo.unfiltered()
--- a/mercurial/profiling.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/profiling.py	Fri Nov 02 14:24:29 2018 -0400
@@ -101,7 +101,8 @@
     else:
         ui.warn(_("invalid sampling frequency '%s' - ignoring\n") % freq)
 
-    track = ui.config('profiling', 'time-track')
+    track = ui.config('profiling', 'time-track',
+                      pycompat.iswindows and 'cpu' or 'real')
     statprof.start(mechanism='thread', track=track)
 
     try:
--- a/mercurial/revlog.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/revlog.py	Fri Nov 02 14:24:29 2018 -0400
@@ -2207,7 +2207,7 @@
     def emitrevisions(self, nodes, nodesorder=None, revisiondata=False,
                       assumehaveparentrevisions=False,
                       deltamode=repository.CG_DELTAMODE_STD):
-        if nodesorder not in ('nodes', 'storage', None):
+        if nodesorder not in ('nodes', 'storage', 'linear', None):
             raise error.ProgrammingError('unhandled value for nodesorder: %s' %
                                          nodesorder)
 
--- a/mercurial/revlogutils/deltas.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/revlogutils/deltas.py	Fri Nov 02 14:24:29 2018 -0400
@@ -593,7 +593,10 @@
         group = []
         for rev in temptative:
             # skip over empty delta (no need to include them in a chain)
-            while not (rev == nullrev or rev in tested or deltalength(rev)):
+            while (revlog._generaldelta
+                   and not (rev == nullrev
+                            or rev in tested
+                            or deltalength(rev))):
                 tested.add(rev)
                 rev = deltaparent(rev)
             # filter out revision we tested already
@@ -646,6 +649,11 @@
         if good is not None:
             break
 
+    # If sparse revlog is enabled, we can try to refine the available deltas
+    if not revlog._sparserevlog:
+        yield None
+        return
+
     # if we have a refinable value, try to refine it
     if good is not None and good not in (p1, p2) and revlog.issnapshot(good):
         # refine snapshot down
--- a/mercurial/utils/storageutil.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/mercurial/utils/storageutil.py	Fri Nov 02 14:24:29 2018 -0400
@@ -340,11 +340,11 @@
 
     if nodesorder == 'nodes':
         revs = [frev(n) for n in nodes]
-    elif nodesorder == 'storage':
-        revs = sorted(frev(n) for n in nodes)
-    else:
+    elif nodesorder == 'linear':
         revs = set(frev(n) for n in nodes)
         revs = dagop.linearize(revs, store.parentrevs)
+    else: # storage and default
+        revs = sorted(frev(n) for n in nodes)
 
     prevrev = None
 
--- a/rust/hg-direct-ffi/src/ancestors.rs	Sat Oct 13 01:55:40 2018 -0700
+++ b/rust/hg-direct-ffi/src/ancestors.rs	Fri Nov 02 14:24:29 2018 -0400
@@ -60,15 +60,16 @@
 pub extern "C" fn rustlazyancestors_init(
     index: IndexPtr,
     parents: IndexParentsFn,
-    initrevslen: usize,
+    initrevslen: ssize_t,
     initrevs: *mut c_long,
     stoprev: c_long,
     inclusive: c_int,
 ) -> *mut AncestorsIterator<Index> {
+    assert!(initrevslen >= 0);
     unsafe {
         raw_init(
             Index::new(index, parents),
-            initrevslen,
+            initrevslen as usize,
             initrevs,
             stoprev,
             inclusive,
--- a/setup.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/setup.py	Fri Nov 02 14:24:29 2018 -0400
@@ -168,6 +168,9 @@
 from distutils.sysconfig import get_python_inc, get_config_var
 from distutils.version import StrictVersion
 
+# Explain to distutils.StrictVersion how our release candidates are versionned
+StrictVersion.version_re = re.compile(r'^(\d+)\.(\d+)(\.(\d+))?-?(rc(\d+))?$')
+
 def write_if_changed(path, content):
     """Write content to a file iff the content hasn't changed."""
     if os.path.exists(path):
--- a/tests/hghave.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/hghave.py	Fri Nov 02 14:24:29 2018 -0400
@@ -791,10 +791,14 @@
 def has_sqlite():
     try:
         import sqlite3
-        sqlite3.sqlite_version
+        version = sqlite3.sqlite_version_info
     except ImportError:
         return False
 
+    if version < (3, 8, 3):
+        # WITH clause not supported
+        return False
+
     return matchoutput('sqlite3 -version', b'^3\.\d+')
 
 @check('vcr', 'vcr http mocking library')
--- a/tests/test-contrib-relnotes.t	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/test-contrib-relnotes.t	Fri Nov 02 14:24:29 2018 -0400
@@ -132,28 +132,34 @@
    * bookmark: introduce a 'bookmarks' part
    * bookmark: introduce in advance a variant of the exchange test
    * bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'
+   * bookmark: use the 'bookmarks' bundle2 part to push bookmark update (Bts:issue5165)
    * bookmarks: add bookmarks to hidden revs if directaccess config is set
    * bookmarks: calculate visibility exceptions only once
    * bookmarks: display the obsfate of hidden revision we create a bookmark on
    * bookmarks: fix pushkey compatibility mode (Bts:issue5777)
    * bookmarks: use context managers for lock and transaction in update()
    * bookmarks: use context managers for locks and transaction in pushbookmark()
+   * branch: add a --rev flag to change branch name of given revisions
    * branch: allow changing branch name to existing name if possible
    * clone: add support for storing remotenames while cloning
    * clone: use utility function to write hgrc
    * clonebundle: make it possible to retrieve the initial bundle through largefile
+   * commands: use the new API to access hidden changesets in various commands
    * commandserver: restore cwd in case of exception
    * commandserver: unblock SIGCHLD
+   * fileset: do not crash by unary negate operation
    * help: deprecate ui.slash in favor of slashpath template filter (Bts:issue5572)
    * log: allow matchfn to be non-null even if both --patch/--stat are off
    * log: build follow-log filematcher at once
    * log: don't expand aliases in revset built from command options
+   * log: follow file history across copies even with -rREV (BC) (Bts:issue4959)
    * log: make "slowpath" condition slightly more readable
    * log: make opt2revset table a module constant
    * log: merge getlogrevs() and getgraphlogrevs()
    * log: remove temporary variable 'date' used only once
    * log: resolve --follow thoroughly in getlogrevs()
    * log: resolve --follow with -rREV in cmdutil.getlogrevs()
+   * log: rewrite --follow-first -rREV like --follow for consistency (BC)
    * log: simplify 'x or ancestors(x)' expression
    * log: translate column labels at once (Bts:issue5750)
    * log: use revsetlang.formatspec() thoroughly
@@ -172,10 +178,23 @@
    * pull: store binary node in pullop.remotebookmarks
    * push: include a 'check:bookmarks' part when possible
    * push: restrict common discovery to the pushed set
+   * revert: do not reverse hunks in interactive when REV is not parent (Bts:issue5096)
    * revert: support reverting to hidden cset if directaccess config is set
   
   === core ===
+   * color: respect HGPLAINEXCEPT=color to allow colors while scripting (Bts:issue5749)
+   * dirstate: add explicit methods for querying directories (API)
+   * dispatch: abort if early boolean options can't be parsed
+   * dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
+   * dispatch: add option to not strip command args parsed by _earlygetopt()
+   * dispatch: alias --repo to --repository while parsing early options
+   * dispatch: fix early parsing of short option with value like -R=foo
+   * dispatch: handle IOError when writing to stderr
+   * dispatch: stop parsing of early boolean option at "--"
+   * dispatch: verify result of early command parsing
+   * exchange: return bundle info from getbundlechunks() (API)
    * filelog: add the ability to report the user facing name
+   * localrepo: specify optional callback parameter to pathauditor as a keyword
    * revlog: choose between ifh and dfh once for all
    * revlog: don't use slicing to return parents
    * revlog: group delta computation methods under _deltacomputer object
@@ -185,9 +204,21 @@
    * revlog: separate diff computation from the collection of other info
    * revset: evaluate filesets against each revision for 'file()' (Bts:issue5778)
    * revset: parse x^:: as (x^):: (Bts:issue5764)
+   * streamclone: add support for bundle2 based stream clone
+   * streamclone: add support for cloning non append-only file
+   * streamclone: also stream caches to the client
+   * streamclone: define first iteration of version 2 of stream format
+   * streamclone: move wire protocol status code from wireproto command
+   * streamclone: rework canperformstreamclone
+   * streamclone: tests phase exchange during stream clone
+   * streamclone: use readexactly when reading stream v2
+   * templater: fix crash by empty group expression
+   * templater: keep default resources per template engine (API)
    * templater: look up symbols/resources as if they were separated (Bts:issue5699)
    * transaction: register summary callbacks only at start of transaction (BC)
    * util: whitelist NTFS for hardlink creation (Bts:issue4580)
+   * vfs: drop text mode flag (API)
+   * wireproto: drop support for reader interface from streamres (API)
   
   === extensions ===
    * convert: restore the ability to use bzr < 2.6.0 (Bts:issue5733)
@@ -195,7 +226,6 @@
    * largefiles: add a 'debuglfput' command to put largefile into the store
    * largefiles: add support for 'largefiles://' url scheme
    * largefiles: allow to run 'debugupgraderepo' on repo with largefiles
-   * largefiles: convert EOL of hgrc before appending to bytes IO
    * largefiles: explicitly set the source and sink types to 'hg' for lfconvert
    * largefiles: modernize how capabilities are added to the wire protocol
    * largefiles: pay attention to dropped standin files when updating largefiles
@@ -208,6 +238,8 @@
    * rebase: don't run IMM if running rebase in a transaction
    * rebase: don't take out a dirstate guard for in-memory rebase
    * rebase: drop --style option
+   * rebase: enable multidest by default
+   * rebase: exclude descendants of obsoletes w/o a successor in dest (Bts:issue5300)
    * rebase: fix for hgsubversion
    * rebase: pass the wctx object (IMM or on-disk) to merge.update
    * rebase: pass wctx to rebasenode()
@@ -224,21 +256,14 @@
   === unsorted ===
    * archive: add support to specify hidden revs if directaccess config is set
    * atomicupdate: add an experimental option to use atomictemp when updating
+   * bundle2: don't use seekable bundle2 parts by default (Bts:issue5691)
    * bundle: allow bundlerepo to support alternative manifest implementations
    * changelog: introduce a 'tiprev' method
    * changelog: use 'tiprev()' in 'tip()'
    * completion: add support for new "amend" command
+   * crecord: fix revert -ir '.^' crash caused by 3649c3f2cd
    * debugssl: convert port number to int (Bts:issue5757)
    * diff: disable diff.noprefix option for diffstat (Bts:issue5759)
-   * dispatch: abort if early boolean options can't be parsed
-   * dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
-   * dispatch: add option to not strip command args parsed by _earlygetopt()
-   * dispatch: alias --repo to --repository while parsing early options
-   * dispatch: convert non-list option parsed by _earlygetopt() to string
-   * dispatch: fix early parsing of short option with value like -R=foo
-   * dispatch: handle IOError when writing to stderr
-   * dispatch: stop parsing of early boolean option at "--"
-   * dispatch: verify result of early command parsing
    * evolution: make reporting of new unstable changesets optional
    * extdata: abort if external command exits with non-zero status (BC)
    * fancyopts: add early-options parser compatible with getopt()
@@ -247,7 +272,6 @@
    * httppeer: add support for tracing all http request made by the peer
    * identify: document -r. explicitly how to disable wdir scanning (Bts:issue5622)
    * lfs: register config options
-   * localrepo: specify optional callback parameter to pathauditor as a keyword
    * match: do not weirdly include explicit files excluded by -X option
    * memfilectx: make changectx argument mandatory in constructor (API)
    * morestatus: don't crash with different drive letters for repo.root and CWD
@@ -256,36 +280,38 @@
    * rewriteutil: use precheck() in uncommit and amend commands
    * scmutil: don't try to delete origbackup symlinks to directories (Bts:issue5731)
    * sshpeer: add support for request tracing
-   * streamclone: add support for bundle2 based stream clone
-   * streamclone: add support for cloning non append-only file
-   * streamclone: also stream caches to the client
-   * streamclone: define first iteration of version 2 of stream format
-   * streamclone: move wire protocol status code from wireproto command
-   * streamclone: rework canperformstreamclone
-   * streamclone: tests phase exchange during stream clone
-   * streamclone: use readexactly when reading stream v2
    * subrepo: add config option to reject any subrepo operations (SEC)
    * subrepo: disable git and svn subrepos by default (BC) (SEC)
    * subrepo: extend config option to disable subrepos by type (SEC)
    * subrepo: handle 'C:' style paths on the command line (Bts:issue5770)
    * subrepo: use per-type config options to enable subrepos
    * svnsubrepo: check if subrepo is missing when checking dirty state (Bts:issue5657)
+   * test-bookmarks-pushpull: stabilize for Windows
+   * test-run-tests: stabilize the test (Bts:issue5735)
    * tr-summary: keep a weakref to the unfiltered repository
    * unamend: fix command summary line
    * uncommit: unify functions _uncommitdirstate and _unamenddirstate to one
+   * update: fix crash on bare update when directaccess is enabled
    * update: support updating to hidden cset if directaccess config is set
   
-  === BC ===
+  === Behavior Changes ===
   
    * extdata: abort if external command exits with non-zero status (BC)
    * graphlog: add another graph node type, unstable, using character "*" (BC)
    * hgweb: drop support of browsers that don't understand <canvas> (BC)
    * hgweb: only include graph-related data in jsdata variable on /graph pages (BC)
    * hgweb: stop adding strings to innerHTML of #graphnodes and #nodebgs (BC)
+   * log: follow file history across copies even with -rREV (BC) (Bts:issue4959)
+   * log: rewrite --follow-first -rREV like --follow for consistency (BC)
    * remove: print message for each file in verbose mode only while using '-A' (BC)
    * subrepo: disable git and svn subrepos by default (BC) (SEC)
    * transaction: register summary callbacks only at start of transaction (BC)
   
-  === API Changes ===
+  === Internal API Changes ===
   
+   * dirstate: add explicit methods for querying directories (API)
+   * exchange: return bundle info from getbundlechunks() (API)
    * memfilectx: make changectx argument mandatory in constructor (API)
+   * templater: keep default resources per template engine (API)
+   * vfs: drop text mode flag (API)
+   * wireproto: drop support for reader interface from streamres (API)
--- a/tests/test-generaldelta.t	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/test-generaldelta.t	Fri Nov 02 14:24:29 2018 -0400
@@ -279,61 +279,61 @@
   14 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R relax-chain debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base         47         46         47   1.02174        47         0    0.00000
-        1       1        2        0      p1         58         92        105   1.14130       105         0    0.00000
-        2       1        3        1      p1         58        138        163   1.18116       163         0    0.00000
-        3       1        4        2      p1         58        184        221   1.20109       221         0    0.00000
-        4       1        5        3      p1         58        230        279   1.21304       279         0    0.00000
-        5       1        6        4      p1         58        276        337   1.22101       337         0    0.00000
-        6       1        7        5      p1         58        322        395   1.22671       395         0    0.00000
-        7       1        8        6      p1         58        368        453   1.23098       453         0    0.00000
-        8       1        9        7      p1         58        414        511   1.23430       511         0    0.00000
-        9       1       10        8      p1         58        460        569   1.23696       569         0    0.00000
-       10       1       11        9      p1         58        506        627   1.23913       627         0    0.00000
-       11       1       12       10      p1         58        552        685   1.24094       685         0    0.00000
-       12       1       13       11      p1         58        598        743   1.24247       743         0    0.00000
-       13       1       14       12      p1         58        644        801   1.24379       801         0    0.00000
-       14       1       15       13      p1         58        690        859   1.24493       859         0    0.00000
-       15       1       16       14      p1         58        736        917   1.24592       917         0    0.00000
-       16       1       17       15      p1         58        782        975   1.24680       975         0    0.00000
-       17       1       18       16      p1         58        828       1033   1.24758      1033         0    0.00000
-       18       1       19       17      p1         58        874       1091   1.24828      1091         0    0.00000
-       19       1       20       18      p1         58        920       1149   1.24891      1149         0    0.00000
-       20       1       21       19      p1         58        966       1207   1.24948      1207         0    0.00000
-       21       1       22       20      p1         58       1012       1265   1.25000      1265         0    0.00000
-       22       1       23       21      p1         58       1058       1323   1.25047      1323         0    0.00000
-       23       1       24       22      p1         58       1104       1381   1.25091      1381         0    0.00000
-       24       1       25       23      p1         58       1150       1439   1.25130      1439         0    0.00000
-       25       1       26       24      p1         58       1196       1497   1.25167      1497         0    0.00000
-       26       1       27       25      p1         58       1242       1555   1.25201      1555         0    0.00000
-       27       1       28       26      p1         58       1288       1613   1.25233      1613         0    0.00000
-       28       1       29       27      p1         58       1334       1671   1.25262      1671         0    0.00000
-       29       1       30       28      p1         58       1380       1729   1.25290      1729         0    0.00000
-       30       1       31       29      p1         58       1426       1787   1.25316      1787         0    0.00000
-       31       2        1       -1    base         46         45         46   1.02222        46         0    0.00000
-       32       2        2       31      p1         57         90        103   1.14444       103         0    0.00000
-       33       2        3       32      p1         57        135        160   1.18519       160         0    0.00000
-       34       2        4       33      p1         57        180        217   1.20556       217         0    0.00000
-       35       2        5       34      p1         57        225        274   1.21778       274         0    0.00000
-       36       2        6       35      p1         57        270        331   1.22593       331         0    0.00000
-       37       2        7       36      p1         58        316        389   1.23101       389         0    0.00000
-       38       2        8       37      p1         58        362        447   1.23481       447         0    0.00000
-       39       3        1       -1    base         46         45         46   1.02222        46         0    0.00000
-       40       3        2       39      p1         57         90        103   1.14444       103         0    0.00000
-       41       3        3       40      p1         57        135        160   1.18519       160         0    0.00000
-       42       3        4       41      p1         57        180        217   1.20556       217         0    0.00000
-       43       3        5       42      p1         58        226        275   1.21681       275         0    0.00000
-       44       3        6       43      p1         58        272        333   1.22426       333         0    0.00000
-       45       3        7       44      p1         58        318        391   1.22956       391         0    0.00000
-       46       3        8       45      p1         58        364        449   1.23352       449         0    0.00000
-       47       3        9       46      p1         58        410        507   1.23659       507         0    0.00000
-       48       3       10       47      p1         58        456        565   1.23904       565         0    0.00000
-       49       3       11       48      p1         58        502        623   1.24104       623         0    0.00000
-       50       3       12       49      p1         58        548        681   1.24270       681         0    0.00000
-       51       3       13       50      p1         58        594        739   1.24411       739         0    0.00000
-       52       3       14       51      p1         58        640        797   1.24531       797         0    0.00000
-       53       4        1       -1    base          0          0          0   0.00000         0         0    0.00000
-       54       5        1       -1    base        369        640        369   0.57656       369         0    0.00000
+        0       1        1       -1    base         46         45         46   1.02222        46         0    0.00000
+        1       1        2        0      p1         57         90        103   1.14444       103         0    0.00000
+        2       1        3        1      p1         57        135        160   1.18519       160         0    0.00000
+        3       1        4        2      p1         57        180        217   1.20556       217         0    0.00000
+        4       1        5        3      p1         57        225        274   1.21778       274         0    0.00000
+        5       1        6        4      p1         57        270        331   1.22593       331         0    0.00000
+        6       2        1       -1    base         46         45         46   1.02222        46         0    0.00000
+        7       2        2        6      p1         57         90        103   1.14444       103         0    0.00000
+        8       2        3        7      p1         57        135        160   1.18519       160         0    0.00000
+        9       2        4        8      p1         57        180        217   1.20556       217         0    0.00000
+       10       2        5        9      p1         58        226        275   1.21681       275         0    0.00000
+       11       2        6       10      p1         58        272        333   1.22426       333         0    0.00000
+       12       2        7       11      p1         58        318        391   1.22956       391         0    0.00000
+       13       2        8       12      p1         58        364        449   1.23352       449         0    0.00000
+       14       2        9       13      p1         58        410        507   1.23659       507         0    0.00000
+       15       2       10       14      p1         58        456        565   1.23904       565         0    0.00000
+       16       2       11       15      p1         58        502        623   1.24104       623         0    0.00000
+       17       2       12       16      p1         58        548        681   1.24270       681         0    0.00000
+       18       3        1       -1    base         47         46         47   1.02174        47         0    0.00000
+       19       3        2       18      p1         58         92        105   1.14130       105         0    0.00000
+       20       3        3       19      p1         58        138        163   1.18116       163         0    0.00000
+       21       3        4       20      p1         58        184        221   1.20109       221         0    0.00000
+       22       3        5       21      p1         58        230        279   1.21304       279         0    0.00000
+       23       3        6       22      p1         58        276        337   1.22101       337         0    0.00000
+       24       3        7       23      p1         58        322        395   1.22671       395         0    0.00000
+       25       3        8       24      p1         58        368        453   1.23098       453         0    0.00000
+       26       3        9       25      p1         58        414        511   1.23430       511         0    0.00000
+       27       3       10       26      p1         58        460        569   1.23696       569         0    0.00000
+       28       3       11       27      p1         58        506        627   1.23913       627         0    0.00000
+       29       3       12       28      p1         58        552        685   1.24094       685         0    0.00000
+       30       3       13       29      p1         58        598        743   1.24247       743         0    0.00000
+       31       3       14       30      p1         58        644        801   1.24379       801         0    0.00000
+       32       3       15       31      p1         58        690        859   1.24493       859         0    0.00000
+       33       3       16       32      p1         58        736        917   1.24592       917         0    0.00000
+       34       3       17       33      p1         58        782        975   1.24680       975         0    0.00000
+       35       3       18       34      p1         58        828       1033   1.24758      1033         0    0.00000
+       36       3       19       35      p1         58        874       1091   1.24828      1091         0    0.00000
+       37       3       20       36      p1         58        920       1149   1.24891      1149         0    0.00000
+       38       3       21       37      p1         58        966       1207   1.24948      1207         0    0.00000
+       39       3       22       38      p1         58       1012       1265   1.25000      1265         0    0.00000
+       40       3       23       39      p1         58       1058       1323   1.25047      1323         0    0.00000
+       41       3       24       40      p1         58       1104       1381   1.25091      1381         0    0.00000
+       42       3       25       41      p1         58       1150       1439   1.25130      1439         0    0.00000
+       43       3       26       42      p1         58       1196       1497   1.25167      1497         0    0.00000
+       44       3       27       43      p1         58       1242       1555   1.25201      1555         0    0.00000
+       45       3       28       44      p1         58       1288       1613   1.25233      1613         0    0.00000
+       46       3       29       45      p1         58       1334       1671   1.25262      1671         0    0.00000
+       47       3       30       46      p1         58       1380       1729   1.25290      1729         0    0.00000
+       48       3       31       47      p1         58       1426       1787   1.25316      1787         0    0.00000
+       49       4        1       -1    base        197        316        197   0.62342       197         0    0.00000
+       50       4        2       49      p1         58        362        255   0.70442       255         0    0.00000
+       51       2       13       17      p1         58        594        739   1.24411      2781      2042    2.76319
+       52       5        1       -1    base        369        640        369   0.57656       369         0    0.00000
+       53       6        1       -1    base          0          0          0   0.00000         0         0    0.00000
+       54       7        1       -1    base        369        640        369   0.57656       369         0    0.00000
   $ hg clone --pull source-repo --config experimental.maxdeltachainspan=0 noconst-chain --config format.generaldelta=yes
   requesting all changes
   adding changesets
@@ -345,58 +345,58 @@
   14 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R noconst-chain debugdeltachain -m
       rev  chain# chainlen     prev   delta       size    rawsize  chainsize     ratio   lindist extradist extraratio
-        0       1        1       -1    base         47         46         47   1.02174        47         0    0.00000
-        1       1        2        0      p1         58         92        105   1.14130       105         0    0.00000
-        2       1        3        1      p1         58        138        163   1.18116       163         0    0.00000
-        3       1        4        2      p1         58        184        221   1.20109       221         0    0.00000
-        4       1        5        3      p1         58        230        279   1.21304       279         0    0.00000
-        5       1        6        4      p1         58        276        337   1.22101       337         0    0.00000
-        6       1        7        5      p1         58        322        395   1.22671       395         0    0.00000
-        7       1        8        6      p1         58        368        453   1.23098       453         0    0.00000
-        8       1        9        7      p1         58        414        511   1.23430       511         0    0.00000
-        9       1       10        8      p1         58        460        569   1.23696       569         0    0.00000
-       10       1       11        9      p1         58        506        627   1.23913       627         0    0.00000
-       11       1       12       10      p1         58        552        685   1.24094       685         0    0.00000
-       12       1       13       11      p1         58        598        743   1.24247       743         0    0.00000
-       13       1       14       12      p1         58        644        801   1.24379       801         0    0.00000
-       14       1       15       13      p1         58        690        859   1.24493       859         0    0.00000
-       15       1       16       14      p1         58        736        917   1.24592       917         0    0.00000
-       16       1       17       15      p1         58        782        975   1.24680       975         0    0.00000
-       17       1       18       16      p1         58        828       1033   1.24758      1033         0    0.00000
-       18       1       19       17      p1         58        874       1091   1.24828      1091         0    0.00000
-       19       1       20       18      p1         58        920       1149   1.24891      1149         0    0.00000
-       20       1       21       19      p1         58        966       1207   1.24948      1207         0    0.00000
-       21       1       22       20      p1         58       1012       1265   1.25000      1265         0    0.00000
-       22       1       23       21      p1         58       1058       1323   1.25047      1323         0    0.00000
-       23       1       24       22      p1         58       1104       1381   1.25091      1381         0    0.00000
-       24       1       25       23      p1         58       1150       1439   1.25130      1439         0    0.00000
-       25       1       26       24      p1         58       1196       1497   1.25167      1497         0    0.00000
-       26       1       27       25      p1         58       1242       1555   1.25201      1555         0    0.00000
-       27       1       28       26      p1         58       1288       1613   1.25233      1613         0    0.00000
-       28       1       29       27      p1         58       1334       1671   1.25262      1671         0    0.00000
-       29       1       30       28      p1         58       1380       1729   1.25290      1729         0    0.00000
-       30       1       31       29      p1         58       1426       1787   1.25316      1787         0    0.00000
-       31       2        1       -1    base         46         45         46   1.02222        46         0    0.00000
-       32       2        2       31      p1         57         90        103   1.14444       103         0    0.00000
-       33       2        3       32      p1         57        135        160   1.18519       160         0    0.00000
-       34       2        4       33      p1         57        180        217   1.20556       217         0    0.00000
-       35       2        5       34      p1         57        225        274   1.21778       274         0    0.00000
-       36       2        6       35      p1         57        270        331   1.22593       331         0    0.00000
-       37       2        7       36      p1         58        316        389   1.23101       389         0    0.00000
-       38       2        8       37      p1         58        362        447   1.23481       447         0    0.00000
-       39       3        1       -1    base         46         45         46   1.02222        46         0    0.00000
-       40       3        2       39      p1         57         90        103   1.14444       103         0    0.00000
-       41       3        3       40      p1         57        135        160   1.18519       160         0    0.00000
-       42       3        4       41      p1         57        180        217   1.20556       217         0    0.00000
-       43       3        5       42      p1         58        226        275   1.21681       275         0    0.00000
-       44       3        6       43      p1         58        272        333   1.22426       333         0    0.00000
-       45       3        7       44      p1         58        318        391   1.22956       391         0    0.00000
-       46       3        8       45      p1         58        364        449   1.23352       449         0    0.00000
-       47       3        9       46      p1         58        410        507   1.23659       507         0    0.00000
-       48       3       10       47      p1         58        456        565   1.23904       565         0    0.00000
-       49       3       11       48      p1         58        502        623   1.24104       623         0    0.00000
-       50       3       12       49      p1         58        548        681   1.24270       681         0    0.00000
-       51       3       13       50      p1         58        594        739   1.24411       739         0    0.00000
-       52       3       14       51      p1         58        640        797   1.24531       797         0    0.00000
+        0       1        1       -1    base         46         45         46   1.02222        46         0    0.00000
+        1       1        2        0      p1         57         90        103   1.14444       103         0    0.00000
+        2       1        3        1      p1         57        135        160   1.18519       160         0    0.00000
+        3       1        4        2      p1         57        180        217   1.20556       217         0    0.00000
+        4       1        5        3      p1         57        225        274   1.21778       274         0    0.00000
+        5       1        6        4      p1         57        270        331   1.22593       331         0    0.00000
+        6       2        1       -1    base         46         45         46   1.02222        46         0    0.00000
+        7       2        2        6      p1         57         90        103   1.14444       103         0    0.00000
+        8       2        3        7      p1         57        135        160   1.18519       160         0    0.00000
+        9       2        4        8      p1         57        180        217   1.20556       217         0    0.00000
+       10       2        5        9      p1         58        226        275   1.21681       275         0    0.00000
+       11       2        6       10      p1         58        272        333   1.22426       333         0    0.00000
+       12       2        7       11      p1         58        318        391   1.22956       391         0    0.00000
+       13       2        8       12      p1         58        364        449   1.23352       449         0    0.00000
+       14       2        9       13      p1         58        410        507   1.23659       507         0    0.00000
+       15       2       10       14      p1         58        456        565   1.23904       565         0    0.00000
+       16       2       11       15      p1         58        502        623   1.24104       623         0    0.00000
+       17       2       12       16      p1         58        548        681   1.24270       681         0    0.00000
+       18       3        1       -1    base         47         46         47   1.02174        47         0    0.00000
+       19       3        2       18      p1         58         92        105   1.14130       105         0    0.00000
+       20       3        3       19      p1         58        138        163   1.18116       163         0    0.00000
+       21       3        4       20      p1         58        184        221   1.20109       221         0    0.00000
+       22       3        5       21      p1         58        230        279   1.21304       279         0    0.00000
+       23       3        6       22      p1         58        276        337   1.22101       337         0    0.00000
+       24       3        7       23      p1         58        322        395   1.22671       395         0    0.00000
+       25       3        8       24      p1         58        368        453   1.23098       453         0    0.00000
+       26       3        9       25      p1         58        414        511   1.23430       511         0    0.00000
+       27       3       10       26      p1         58        460        569   1.23696       569         0    0.00000
+       28       3       11       27      p1         58        506        627   1.23913       627         0    0.00000
+       29       3       12       28      p1         58        552        685   1.24094       685         0    0.00000
+       30       3       13       29      p1         58        598        743   1.24247       743         0    0.00000
+       31       3       14       30      p1         58        644        801   1.24379       801         0    0.00000
+       32       3       15       31      p1         58        690        859   1.24493       859         0    0.00000
+       33       3       16       32      p1         58        736        917   1.24592       917         0    0.00000
+       34       3       17       33      p1         58        782        975   1.24680       975         0    0.00000
+       35       3       18       34      p1         58        828       1033   1.24758      1033         0    0.00000
+       36       3       19       35      p1         58        874       1091   1.24828      1091         0    0.00000
+       37       3       20       36      p1         58        920       1149   1.24891      1149         0    0.00000
+       38       3       21       37      p1         58        966       1207   1.24948      1207         0    0.00000
+       39       3       22       38      p1         58       1012       1265   1.25000      1265         0    0.00000
+       40       3       23       39      p1         58       1058       1323   1.25047      1323         0    0.00000
+       41       3       24       40      p1         58       1104       1381   1.25091      1381         0    0.00000
+       42       3       25       41      p1         58       1150       1439   1.25130      1439         0    0.00000
+       43       3       26       42      p1         58       1196       1497   1.25167      1497         0    0.00000
+       44       3       27       43      p1         58       1242       1555   1.25201      1555         0    0.00000
+       45       3       28       44      p1         58       1288       1613   1.25233      1613         0    0.00000
+       46       3       29       45      p1         58       1334       1671   1.25262      1671         0    0.00000
+       47       3       30       46      p1         58       1380       1729   1.25290      1729         0    0.00000
+       48       3       31       47      p1         58       1426       1787   1.25316      1787         0    0.00000
+       49       1        7        5      p1         58        316        389   1.23101      2857      2468    6.34447
+       50       1        8       49      p1         58        362        447   1.23481      2915      2468    5.52125
+       51       2       13       17      p1         58        594        739   1.24411      2642      1903    2.57510
+       52       2       14       51      p1         58        640        797   1.24531      2700      1903    2.38770
        53       4        1       -1    base          0          0          0   0.00000         0         0    0.00000
        54       5        1       -1    base        369        640        369   0.57656       369         0    0.00000
--- a/tests/test-narrow-copies.t	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/test-narrow-copies.t	Fri Nov 02 14:24:29 2018 -0400
@@ -18,10 +18,12 @@
   $ echo modified > inside/f2
   $ hg ci -qm 'modify inside/f2'
 
+  $ mkdir outside
+  $ echo new > outside/f3
+  $ hg ci -Aqm 'add outside/f3'
   $ cd ..
 
-  $ hg clone --narrow ssh://user@dummy/master narrow --include inside
-  requesting all changes
+  $ hg clone --narrow ssh://user@dummy/master narrow --include inside -r 2
   adding changesets
   adding manifests
   adding file changes
@@ -55,3 +57,18 @@
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     move f2 from outside
   
+  $ echo new > inside/f4
+  $ hg ci -Aqm 'add inside/f4'
+  $ hg pull -q
+  $ hg --config extensions.rebase= rebase -d tip
+  rebasing 3:4f84b666728c "add inside/f4"
+  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/4f84b666728c-4269b76e-rebase.hg
+
+  $ hg co -q 0
+  $ echo modified > inside/f1
+  $ hg ci -qm 'modify inside/f1'
+  $ echo new > inside/f5
+  $ hg ci -Aqm 'add inside/f5'
+  $ hg --config extensions.rebase= rebase -d 'public()' -r .
+  rebasing 6:610b60178c28 "add inside/f5" (tip)
+  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/610b60178c28-65716a78-rebase.hg
--- a/tests/test-phases.t	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/test-phases.t	Fri Nov 02 14:24:29 2018 -0400
@@ -850,6 +850,10 @@
   ** ProgrammingError: this repository does not support the internal phase
       raise error.ProgrammingError(msg)
   mercurial.error.ProgrammingError: this repository does not support the internal phase
+  $ hg --config "phases.new-commit=archived" commit -m "my test archived commit" 2>&1 | grep ProgrammingError
+  ** ProgrammingError: this repository does not support the archived phase
+      raise error.ProgrammingError(msg)
+  mercurial.error.ProgrammingError: this repository does not support the archived phase
 
   $ cd ..
 
@@ -878,7 +882,8 @@
   test-debug-phase: new rev 1:  x -> 96
   test-hook-close-phase: c01c42dffc7f81223397e99652a0703f83e1c5ea:   -> internal
 
-Usual visibility rules apply when working directory parents
+The changeset is a working parent descendant.
+Per the usual visibility rules, it is made visible.
 
   $ hg log -G -l 3
   @  changeset:   1:c01c42dffc7f
@@ -904,3 +909,45 @@
      date:        Thu Jan 01 00:00:00 1970 +0000
      summary:     A
   
+
+Test for archived phase
+-----------------------
+
+Commit an archived changesets
+
+  $ echo B > B
+  $ hg add B
+  $ hg status
+  A B
+  $ hg --config "phases.new-commit=archived" commit -m "my test archived commit"
+  test-debug-phase: new rev 2:  x -> 32
+  test-hook-close-phase: 8df5997c3361518f733d1ae67cd3adb9b0eaf125:   -> archived
+
+The changeset is a working parent descendant.
+Per the usual visibility rules, it is made visible.
+
+  $ hg log -G -l 3
+  @  changeset:   2:8df5997c3361
+  |  tag:         tip
+  |  parent:      0:4a2df7238c3b
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     my test archived commit
+  |
+  o  changeset:   0:4a2df7238c3b
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     A
+  
+
+Commit is hidden as expected
+
+  $ hg up 0
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg log -G
+  @  changeset:   0:4a2df7238c3b
+     tag:         tip
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     A
+  
--- a/tests/test-storage.py	Sat Oct 13 01:55:40 2018 -0700
+++ b/tests/test-storage.py	Fri Nov 02 14:24:29 2018 -0400
@@ -25,6 +25,14 @@
     sqlitestore = None
 
 try:
+    import sqlite3
+    if sqlite3.sqlite_version_info < (3, 8, 3):
+        # WITH clause not supported
+        sqlitestore = None
+except ImportError:
+    pass
+
+try:
     from mercurial import zstd
     zstd.__version__
 except ImportError: