176 finaldata.write(obsdata) |
176 finaldata.write(obsdata) |
177 finaldata.seek(0) |
177 finaldata.seek(0) |
178 return wireproto.streamres(proto.groupchunks(finaldata)) |
178 return wireproto.streamres(proto.groupchunks(finaldata)) |
179 |
179 |
180 |
180 |
181 # from evolve extension: 2299204c3c27 |
181 # from evolve extension: 3249814dabd1 |
182 def _obsrelsethashtreefm0(repo): |
182 def _obsrelsethashtreefm0(repo): |
183 return _obsrelsethashtree(repo, obsolete._fm0encodeonemarker) |
183 return _obsrelsethashtree(repo, obsolete._fm0encodeonemarker) |
184 |
184 |
185 # from evolve extension: 2299204c3c27 |
185 # from evolve extension: 3249814dabd1 |
186 def _obsrelsethashtreefm1(repo): |
186 def _obsrelsethashtreefm1(repo): |
187 return _obsrelsethashtree(repo, obsolete._fm1encodeonemarker) |
187 return _obsrelsethashtree(repo, obsolete._fm1encodeonemarker) |
188 |
188 |
189 # from evolve extension: 2299204c3c27 |
189 # from evolve extension: 3249814dabd1 |
190 def _obsrelsethashtree(repo, encodeonemarker): |
190 def _obsrelsethashtree(repo, encodeonemarker): |
191 cache = [] |
191 cache = [] |
192 unfi = repo.unfiltered() |
192 unfi = repo.unfiltered() |
193 markercache = {} |
193 markercache = {} |
194 for i in unfi: |
194 for i in unfi: |
233 if issue4587: |
233 if issue4587: |
234 print >> sys.stderr, ' Final: %s' % sha.hexdigest() |
234 print >> sys.stderr, ' Final: %s' % sha.hexdigest() |
235 print >> sys.stderr, 'Witchcraft tracking: OFF' |
235 print >> sys.stderr, 'Witchcraft tracking: OFF' |
236 return cache |
236 return cache |
237 |
237 |
238 # from evolve extension: 2299204c3c27 |
238 # from evolve extension: 3249814dabd1 |
239 def _obshash(repo, nodes, version=0): |
239 def _obshash(repo, nodes, version=0): |
240 if version == 0: |
240 if version == 0: |
241 hashs = _obsrelsethashtreefm0(repo) |
241 hashs = _obsrelsethashtreefm0(repo) |
242 elif version ==1: |
242 elif version ==1: |
243 hashs = _obsrelsethashtreefm1(repo) |
243 hashs = _obsrelsethashtreefm1(repo) |
245 assert False |
245 assert False |
246 nm = repo.changelog.nodemap |
246 nm = repo.changelog.nodemap |
247 revs = [nm.get(n) for n in nodes] |
247 revs = [nm.get(n) for n in nodes] |
248 return [r is None and node.nullid or hashs[r][1] for r in revs] |
248 return [r is None and node.nullid or hashs[r][1] for r in revs] |
249 |
249 |
250 # from evolve extension: 2299204c3c27 |
250 # from evolve extension: 3249814dabd1 |
251 def srv_obshash(repo, proto, nodes): |
251 def srv_obshash(repo, proto, nodes): |
252 return wireproto.encodelist(_obshash(repo, wireproto.decodelist(nodes))) |
252 return wireproto.encodelist(_obshash(repo, wireproto.decodelist(nodes))) |
253 |
253 |
254 # from evolve extension: 2299204c3c27 |
254 # from evolve extension: 3249814dabd1 |
255 def srv_obshash1(repo, proto, nodes): |
255 def srv_obshash1(repo, proto, nodes): |
256 return wireproto.encodelist(_obshash(repo, wireproto.decodelist(nodes), version=1)) |
256 return wireproto.encodelist(_obshash(repo, wireproto.decodelist(nodes), version=1)) |
257 |
257 |
258 # from evolve extension: 2299204c3c27 |
258 # from evolve extension: 3249814dabd1 |
259 def capabilities(orig, repo, proto): |
259 def capabilities(orig, repo, proto): |
260 """wrapper to advertise new capability""" |
260 """wrapper to advertise new capability""" |
261 caps = orig(repo, proto) |
261 caps = orig(repo, proto) |
262 advertise = repo.ui.configbool('__temporary__', 'advertiseobsolete', True) |
262 advertise = repo.ui.configbool('__temporary__', 'advertiseobsolete', True) |
263 if obsolete._enabled and advertise: |
263 if obsolete._enabled and advertise: |