Details
Details
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/exchange.py (4 lines) |
Commit | Parents | Author | Summary | Date |
---|---|---|---|---|
873e8b2574f5 | 8cfc0445c601 | Pierre-Yves David | Nov 8 2019, 10:00 AM |
Status | Author | Revision | |
---|---|---|---|
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute | ||
Closed | marmoute |
"""discovery phase for the pull | """discovery phase for the pull | ||||
Current handle changeset discovery only, will change handle all discovery | Current handle changeset discovery only, will change handle all discovery | ||||
at some point.""" | at some point.""" | ||||
tmp = discovery.findcommonincoming( | tmp = discovery.findcommonincoming( | ||||
pullop.repo, pullop.remote, heads=pullop.heads, force=pullop.force | pullop.repo, pullop.remote, heads=pullop.heads, force=pullop.force | ||||
) | ) | ||||
common, fetch, rheads = tmp | common, fetch, rheads = tmp | ||||
nm = pullop.repo.unfiltered().changelog.nodemap | has_node = pullop.repo.unfiltered().changelog.index.has_node | ||||
if fetch and rheads: | if fetch and rheads: | ||||
# If a remote heads is filtered locally, put in back in common. | # If a remote heads is filtered locally, put in back in common. | ||||
# | # | ||||
# This is a hackish solution to catch most of "common but locally | # This is a hackish solution to catch most of "common but locally | ||||
# hidden situation". We do not performs discovery on unfiltered | # hidden situation". We do not performs discovery on unfiltered | ||||
# repository because it end up doing a pathological amount of round | # repository because it end up doing a pathological amount of round | ||||
# trip for w huge amount of changeset we do not care about. | # trip for w huge amount of changeset we do not care about. | ||||
# | # | ||||
# If a set of such "common but filtered" changeset exist on the server | # If a set of such "common but filtered" changeset exist on the server | ||||
# but are not including a remote heads, we'll not be able to detect it, | # but are not including a remote heads, we'll not be able to detect it, | ||||
scommon = set(common) | scommon = set(common) | ||||
for n in rheads: | for n in rheads: | ||||
if n in nm: | if has_node(n): | ||||
if n not in scommon: | if n not in scommon: | ||||
common.append(n) | common.append(n) | ||||
if set(rheads).issubset(set(common)): | if set(rheads).issubset(set(common)): | ||||
fetch = [] | fetch = [] | ||||
pullop.common = common | pullop.common = common | ||||
pullop.fetch = fetch | pullop.fetch = fetch | ||||
pullop.rheads = rheads | pullop.rheads = rheads | ||||