# HG changeset patch # User Augie Fackler # Date 1541183069 14400 # Node ID 4fe63b573791e198b9243046aac1bf9816aacb6f # Parent c2a0bc6412dbbcbba20517e250b0fcd2fc79b0e7# Parent 5eaa5eb0db4e201504b99115230b82dc9517ac17 merge with stable diff -r c2a0bc6412db -r 4fe63b573791 .hgsigs --- 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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 diff -r c2a0bc6412db -r 4fe63b573791 .hgtags --- 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 diff -r c2a0bc6412db -r 4fe63b573791 contrib/relnotes --- 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) diff -r c2a0bc6412db -r 4fe63b573791 hgext/fix.py --- 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 diff -r c2a0bc6412db -r 4fe63b573791 hgext/sqlitestore.py --- 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) diff -r c2a0bc6412db -r 4fe63b573791 mercurial/bundle2.py --- 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')) diff -r c2a0bc6412db -r 4fe63b573791 mercurial/cext/revlog.c --- 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); diff -r c2a0bc6412db -r 4fe63b573791 mercurial/configitems.py --- 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', diff -r c2a0bc6412db -r 4fe63b573791 mercurial/copies.py --- 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: diff -r c2a0bc6412db -r 4fe63b573791 mercurial/crecord.py --- 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 diff -r c2a0bc6412db -r 4fe63b573791 mercurial/exewrapper.c --- 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 = diff -r c2a0bc6412db -r 4fe63b573791 mercurial/help.py --- 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): ''' diff -r c2a0bc6412db -r 4fe63b573791 mercurial/help/config.txt --- 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 diff -r c2a0bc6412db -r 4fe63b573791 mercurial/httppeer.py --- 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. diff -r c2a0bc6412db -r 4fe63b573791 mercurial/keepalive.py --- 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: diff -r c2a0bc6412db -r 4fe63b573791 mercurial/logexchange.py --- 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 diff -r c2a0bc6412db -r 4fe63b573791 mercurial/phases.py --- 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() diff -r c2a0bc6412db -r 4fe63b573791 mercurial/profiling.py --- 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: diff -r c2a0bc6412db -r 4fe63b573791 mercurial/revlog.py --- 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) diff -r c2a0bc6412db -r 4fe63b573791 mercurial/revlogutils/deltas.py --- 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 diff -r c2a0bc6412db -r 4fe63b573791 mercurial/utils/storageutil.py --- 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 diff -r c2a0bc6412db -r 4fe63b573791 rust/hg-direct-ffi/src/ancestors.rs --- 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 { + assert!(initrevslen >= 0); unsafe { raw_init( Index::new(index, parents), - initrevslen, + initrevslen as usize, initrevs, stoprev, inclusive, diff -r c2a0bc6412db -r 4fe63b573791 setup.py --- 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): diff -r c2a0bc6412db -r 4fe63b573791 tests/hghave.py --- 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') diff -r c2a0bc6412db -r 4fe63b573791 tests/test-contrib-relnotes.t --- 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 (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) diff -r c2a0bc6412db -r 4fe63b573791 tests/test-generaldelta.t --- 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 diff -r c2a0bc6412db -r 4fe63b573791 tests/test-narrow-copies.t --- 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 diff -r c2a0bc6412db -r 4fe63b573791 tests/test-phases.t --- 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 + diff -r c2a0bc6412db -r 4fe63b573791 tests/test-storage.py --- 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: