1130 # compute heads |
1130 # compute heads |
1131 public_heads = new_heads(repo, subset, draft_roots) |
1131 public_heads = new_heads(repo, subset, draft_roots) |
1132 return public_heads, draft_roots |
1132 return public_heads, draft_roots |
1133 |
1133 |
1134 |
1134 |
1135 class remotephasessummary: |
1135 class RemotePhasesSummary: |
1136 """summarize phase information on the remote side |
1136 """summarize phase information on the remote side |
1137 |
1137 |
1138 :publishing: True is the remote is publishing |
1138 :publishing: True is the remote is publishing |
1139 :publicheads: list of remote public phase heads (nodes) |
1139 :public_heads: list of remote public phase heads (revs) |
1140 :draftheads: list of remote draft phase heads (nodes) |
1140 :draft_heads: list of remote draft phase heads (revs) |
1141 :draftroots: list of remote draft phase root (nodes) |
1141 :draft_roots: list of remote draft phase root (revs) |
1142 """ |
1142 """ |
1143 |
1143 |
1144 def __init__(self, repo, remotesubset, remoteroots): |
1144 def __init__( |
|
1145 self, |
|
1146 repo, |
|
1147 remote_subset: Collection[int], |
|
1148 remote_roots: Dict[bytes, bytes], |
|
1149 ): |
1145 unfi = repo.unfiltered() |
1150 unfi = repo.unfiltered() |
1146 to_rev = unfi.changelog.index.rev |
1151 self._allremoteroots: Dict[bytes, bytes] = remote_roots |
1147 to_node = unfi.changelog.node |
1152 |
1148 self._allremoteroots = remoteroots |
1153 self.publishing: bool = bool(remote_roots.get(b'publishing', False)) |
1149 |
1154 |
1150 self.publishing = remoteroots.get(b'publishing', False) |
1155 heads, roots = analyze_remote_phases(repo, remote_subset, remote_roots) |
1151 |
1156 self.public_heads: Collection[int] = heads |
1152 remote_subset = [to_rev(n) for n in remotesubset] |
1157 self.draft_roots: Collection[int] = roots |
1153 heads, roots = analyze_remote_phases(repo, remote_subset, remoteroots) |
|
1154 self.publicheads = [to_node(r) for r in heads] |
|
1155 self.draftroots = [to_node(r) for r in roots] |
|
1156 # Get the list of all "heads" revs draft on remote |
1158 # Get the list of all "heads" revs draft on remote |
1157 dheads = unfi.revs(b'heads(%ld::%ld)', roots, remote_subset) |
1159 dheads = unfi.revs(b'heads(%ld::%ld)', roots, remote_subset) |
1158 self.draftheads = [to_node(r) for r in dheads] |
1160 self.draft_heads: Collection[int] = dheads |
1159 |
1161 |
1160 |
1162 |
1161 def new_heads( |
1163 def new_heads( |
1162 repo, |
1164 repo, |
1163 heads: Collection[int], |
1165 heads: Collection[int], |