diff --git a/hgext/narrow/narrowcommands.py b/hgext/narrow/narrowcommands.py --- a/hgext/narrow/narrowcommands.py +++ b/hgext/narrow/narrowcommands.py @@ -293,7 +293,7 @@ else: known = [] if ellipsesremote: - known = [node.hex(ctx.node()) for ctx in + known = [ctx.node() for ctx in repo.set('::%ln', common) if ctx.node() != node.nullid] with remote.commandexecutor() as e: diff --git a/hgext/narrow/narrowwirepeer.py b/hgext/narrow/narrowwirepeer.py --- a/hgext/narrow/narrowwirepeer.py +++ b/hgext/narrow/narrowwirepeer.py @@ -13,7 +13,6 @@ extensions, hg, narrowspec, - node as nodemod, pycompat, wireprototypes, wireprotov1peer, @@ -61,10 +60,13 @@ preferuncompressed = False try: - oldincludes = wireprototypes.decodelist(oldincludes) - newincludes = wireprototypes.decodelist(newincludes) - oldexcludes = wireprototypes.decodelist(oldexcludes) - newexcludes = wireprototypes.decodelist(newexcludes) + def splitpaths(data): + # work around ''.split(',') => [''] + return data.split(b',') if data else [] + oldincludes = splitpaths(oldincludes) + newincludes = splitpaths(newincludes) + oldexcludes = splitpaths(oldexcludes) + newexcludes = splitpaths(newexcludes) # validate the patterns narrowspec.validatepatterns(set(oldincludes)) narrowspec.validatepatterns(set(newincludes)) @@ -73,7 +75,6 @@ common = wireprototypes.decodelist(commonheads) known = wireprototypes.decodelist(known) - known = {nodemod.bin(n) for n in known} if ellipses == '0': ellipses = False else: @@ -106,10 +107,12 @@ prefer_uncompressed=preferuncompressed) def peernarrowwiden(remote, **kwargs): - for ch in (r'oldincludes', r'newincludes', r'oldexcludes', r'newexcludes', - r'commonheads', r'known'): + for ch in (r'commonheads', r'known'): kwargs[ch] = wireprototypes.encodelist(kwargs[ch]) + for ch in (r'oldincludes', r'newincludes', r'oldexcludes', r'newexcludes'): + kwargs[ch] = b','.join(kwargs[ch]) + kwargs[r'ellipses'] = '%i' % bool(kwargs[r'ellipses']) f = remote._callcompressable('narrow_widen', **kwargs) return bundle2.getunbundler(remote.ui, f) diff --git a/relnotes/next b/relnotes/next --- a/relnotes/next +++ b/relnotes/next @@ -15,5 +15,9 @@ you can override it by setting `$HGTEST_SHELL` or by passing it to `run-tests.py --shell `. + * The (experimental) narrow extension's wire protocol changed. If + you're using it, you'll need to make sure to upgrade server and + client at the same time. + == Internal API Changes ==