diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -279,8 +279,27 @@ with ds.parentchange(): ds.setparents(node.nullid, node.nullid) with wrappedextraprepare: - with repo.ui.configoverride(overrides, 'widen'): - exchange.pull(repo, remote, heads=common) + known = [node.hex(ctx.node()) for ctx in + repo.set('::%ln', common) + if ctx.node() != node.nullid] + + with remote.commandexecutor() as e: + bundle = e.callcommand('narrow_widen', { + 'oldincludes': oldincludes, + 'oldexcludes': oldexcludes, + 'newincludes': newincludes, + 'newexcludes': newexcludes, + 'cgversion': '03', + 'commonheads': common, + 'known': known, + 'ellipses': True, + }).result() + trmanager = exchange.transactionmanager(repo, 'widen', remote.url()) + with trmanager: + op = bundle2.bundleoperation(repo, + trmanager.transaction, source='widen') + bundle2.processbundle(repo, bundle, op=op) + with ds.parentchange(): ds.setparents(p1, p2) else: diff --git a/hgext/narrow/narrowwirepeer.py b/hgext/narrow/narrowwirepeer.py --- a/hgext/narrow/narrowwirepeer.py +++ b/hgext/narrow/narrowwirepeer.py @@ -19,6 +19,8 @@ wireprotov1server, ) +from . import narrowbundle2 + def uisetup(): wireprotov1peer.wirepeer.narrow_widen = peernarrowwiden @@ -69,21 +71,25 @@ narrowspec.validatepatterns(set(newexcludes)) common = wireprototypes.decodelist(commonheads) - known = None - if known: - known = wireprototypes.decodelist(known) + known = wireprototypes.decodelist(known) if ellipses == '0': ellipses = False else: ellipses = bool(ellipses) cgversion = cgversion - newmatch = narrowspec.match(repo.root, include=newincludes, - exclude=newexcludes) - oldmatch = narrowspec.match(repo.root, include=oldincludes, - exclude=oldexcludes) - bundler = bundle2.widen_bundle(repo, oldmatch, newmatch, common, known, - cgversion, ellipses) + if not ellipses: + newmatch = narrowspec.match(repo.root, include=newincludes, + exclude=newexcludes) + oldmatch = narrowspec.match(repo.root, include=oldincludes, + exclude=oldexcludes) + bundler = bundle2.widen_bundle(repo, oldmatch, newmatch, common, + known, cgversion, ellipses) + else: + bundler = bundle2.bundle20(repo.ui) + narrowbundle2.generateellipsesbundle2(bundler, repo, oldincludes, + oldexcludes, newincludes, newexcludes, cgversion, common, + known, None, list(common)) except error.Abort as exc: bundler = bundle2.bundle20(repo.ui) manargs = [('message', pycompat.bytestr(exc))] diff --git a/mercurial/wireprototypes.py b/mercurial/wireprototypes.py --- a/mercurial/wireprototypes.py +++ b/mercurial/wireprototypes.py @@ -29,8 +29,8 @@ SSHV2 = 'exp-ssh-v2-0003' HTTP_WIREPROTO_V2 = 'exp-http-v2-0003' -NARROWCAP = 'exp-narrow-1' -ELLIPSESCAP = 'exp-ellipses-1' +NARROWCAP = 'exp-narrow-2' +ELLIPSESCAP = 'exp-ellipses-2' # All available wire protocol transports. TRANSPORTS = { diff --git a/tests/test-narrow-clone-non-narrow-server.t b/tests/test-narrow-clone-non-narrow-server.t --- a/tests/test-narrow-clone-non-narrow-server.t +++ b/tests/test-narrow-clone-non-narrow-server.t @@ -32,7 +32,7 @@ > EOF $ echo hello | hg -R . serve --stdio | \ > "$PYTHON" unquote.py | tr ' ' '\n' | grep narrow - exp-narrow-1 + exp-narrow-2 $ cd .. diff --git a/tests/test-narrow-patterns.t b/tests/test-narrow-patterns.t --- a/tests/test-narrow-patterns.t +++ b/tests/test-narrow-patterns.t @@ -135,13 +135,11 @@ $ hg tracked --removeexclude dir1/dirA comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 9 changesets with 6 changes to 6 files - new changesets *:* (glob) $ hg tracked I path:dir1 I path:dir2 @@ -195,13 +193,11 @@ deleting data/dir1/dirA/bar.i (reporevlogstore !) deleting data/dir1/dirA/bar/0eca1d0cbdaea4651d1d04d71976a6d2d9bfaae5 (reposimplestore !) deleting data/dir1/dirA/bar/index (reposimplestore !) - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 11 changesets with 7 changes to 7 files - new changesets *:* (glob) $ hg tracked I path:dir1 I path:dir2 @@ -253,13 +249,11 @@ deleting data/dir1/dirA/foo.i (reporevlogstore !) deleting data/dir1/dirA/foo/162caeb3d55dceb1fee793aa631ac8c73fcb8b5e (reposimplestore !) deleting data/dir1/dirA/foo/index (reposimplestore !) - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 13 changesets with 8 changes to 8 files - new changesets *:* (glob) $ hg tracked I path:dir1 I path:dir2 @@ -312,13 +306,11 @@ $ hg tracked --removeexclude dir1/dirA comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 13 changesets with 9 changes to 9 files - new changesets *:* (glob) $ hg tracked I path:dir1 I path:dir2 @@ -389,13 +381,11 @@ $ hg tracked --addinclude dir1 comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 10 changesets with 6 changes to 6 files - new changesets *:* (glob) $ find * | sort dir1 dir1/bar diff --git a/tests/test-narrow-trackedcmd.t b/tests/test-narrow-trackedcmd.t --- a/tests/test-narrow-trackedcmd.t +++ b/tests/test-narrow-trackedcmd.t @@ -145,13 +145,11 @@ looking for local changes to affected paths deleting data/inside/f.i deleting meta/inside/00manifest.i (tree !) - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 2 changesets with 0 changes to 0 files - new changesets *:* (glob) $ hg tracked I path:outisde X path:inside @@ -166,13 +164,11 @@ $ hg tracked --import-rules specs --addinclude 'wider/' comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 3 changesets with 1 changes to 1 files - new changesets *:* (glob) $ hg tracked I path:outisde I path:wider @@ -211,13 +207,11 @@ $ hg tracked --import-rules ../nspecs comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 3 changesets with 0 changes to 0 files - new changesets *:* (glob) $ cd .. diff --git a/tests/test-narrow-widen.t b/tests/test-narrow-widen.t --- a/tests/test-narrow-widen.t +++ b/tests/test-narrow-widen.t @@ -95,13 +95,11 @@ $ hg tracked --addinclude widest/f comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 3 changesets with 2 changes to 2 files - new changesets *:* (glob) $ hg tracked I path:inside I path:widest/f @@ -154,13 +152,11 @@ $ hg tracked --addinclude wider comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 8 changesets with 7 changes to 3 files - new changesets *:* (glob) $ hg tracked I path:inside I path:wider @@ -261,13 +257,11 @@ $ hg tracked --addinclude d1 comparing with ssh://user@dummy/upstream searching for changes - no changes found saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 9 changesets with 5 changes to 5 files - new changesets *:* (glob) $ hg tracked I path:d0 I path:d1 @@ -342,7 +336,6 @@ $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1 comparing with ssh://user@dummy/upstream searching for changes - no changes found saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests diff --git a/tests/test-narrow.t b/tests/test-narrow.t --- a/tests/test-narrow.t +++ b/tests/test-narrow.t @@ -286,13 +286,11 @@ $ hg tracked --addinclude d0 comparing with ssh://user@dummy/master searching for changes - no changes found saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob) adding changesets adding manifests adding file changes added 3 changesets with 1 changes to 1 files - new changesets *:* (glob) $ hg tracked I path:d0 $ hg files