D7094: widening: remove always-true condition in widening code
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon Oct 14 17:57:12 UTC 2019
martinvonz created this revision.
Herald added a reviewer: durin42.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The function is now specifically about widening, so we don't need to
check if we're widening.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D7094
AFFECTED FILES
hgext/narrow/narrowbundle2.py
CHANGE DETAILS
diff --git a/hgext/narrow/narrowbundle2.py b/hgext/narrow/narrowbundle2.py
--- a/hgext/narrow/narrowbundle2.py
+++ b/hgext/narrow/narrowbundle2.py
@@ -134,58 +134,57 @@
heads = set(heads or repo.heads())
common = set(common or [nullid])
- if known and (oldinclude != newinclude or oldexclude != newexclude):
- # Steps:
- # 1. Send kill for "$known & ::common"
- #
- # 2. Send changegroup for ::common
- #
- # 3. Proceed.
- #
- # In the future, we can send kills for only the specific
- # nodes we know should go away or change shape, and then
- # send a data stream that tells the client something like this:
- #
- # a) apply this changegroup
- # b) apply nodes XXX, YYY, ZZZ that you already have
- # c) goto a
- #
- # until they've built up the full new state.
- # Convert to revnums and intersect with "common". The client should
- # have made it a subset of "common" already, but let's be safe.
- known = set(repo.revs(b"%ln & ::%ln", known, common))
- # TODO: we could send only roots() of this set, and the
- # list of nodes in common, and the client could work out
- # what to strip, instead of us explicitly sending every
- # single node.
- deadrevs = known
+ # Steps:
+ # 1. Send kill for "$known & ::common"
+ #
+ # 2. Send changegroup for ::common
+ #
+ # 3. Proceed.
+ #
+ # In the future, we can send kills for only the specific
+ # nodes we know should go away or change shape, and then
+ # send a data stream that tells the client something like this:
+ #
+ # a) apply this changegroup
+ # b) apply nodes XXX, YYY, ZZZ that you already have
+ # c) goto a
+ #
+ # until they've built up the full new state.
+ # Convert to revnums and intersect with "common". The client should
+ # have made it a subset of "common" already, but let's be safe.
+ known = set(repo.revs(b"%ln & ::%ln", known, common))
+ # TODO: we could send only roots() of this set, and the
+ # list of nodes in common, and the client could work out
+ # what to strip, instead of us explicitly sending every
+ # single node.
+ deadrevs = known
- def genkills():
- for r in deadrevs:
- yield _KILLNODESIGNAL
- yield repo.changelog.node(r)
- yield _DONESIGNAL
+ def genkills():
+ for r in deadrevs:
+ yield _KILLNODESIGNAL
+ yield repo.changelog.node(r)
+ yield _DONESIGNAL
- bundler.newpart(_CHANGESPECPART, data=genkills())
- newvisit, newfull, newellipsis = exchange._computeellipsis(
- repo, set(), common, known, newmatch
+ bundler.newpart(_CHANGESPECPART, data=genkills())
+ newvisit, newfull, newellipsis = exchange._computeellipsis(
+ repo, set(), common, known, newmatch
+ )
+ if newvisit:
+ packer = changegroup.getbundler(
+ version,
+ repo,
+ matcher=newmatch,
+ ellipses=True,
+ shallow=depth is not None,
+ ellipsisroots=newellipsis,
+ fullnodes=newfull,
)
- if newvisit:
- packer = changegroup.getbundler(
- version,
- repo,
- matcher=newmatch,
- ellipses=True,
- shallow=depth is not None,
- ellipsisroots=newellipsis,
- fullnodes=newfull,
- )
- cgdata = packer.generate(common, newvisit, False, b'narrow_widen')
+ cgdata = packer.generate(common, newvisit, False, b'narrow_widen')
- part = bundler.newpart(b'changegroup', data=cgdata)
- part.addparam(b'version', version)
- if b'treemanifest' in repo.requirements:
- part.addparam(b'treemanifest', b'1')
+ part = bundler.newpart(b'changegroup', data=cgdata)
+ part.addparam(b'version', version)
+ if b'treemanifest' in repo.requirements:
+ part.addparam(b'treemanifest', b'1')
visitnodes, relevant_nodes, ellipsisroots = exchange._computeellipsis(
repo, common, heads, set(), newmatch, depth=depth
To: martinvonz, durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list