Mercurial > public > mercurial-scm > hg
comparison mercurial/changegroup.py @ 23244:18cc87e4375a
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 10 Nov 2014 17:29:15 -0600 |
parents | c58432685cff 5dcaed20b27c |
children | 6c1351352b6c |
comparison
equal
deleted
inserted
replaced
23243:c58432685cff | 23244:18cc87e4375a |
---|---|
337 changedfiles.update(c[3]) | 337 changedfiles.update(c[3]) |
338 # record the first changeset introducing this manifest version | 338 # record the first changeset introducing this manifest version |
339 mfs.setdefault(c[0], x) | 339 mfs.setdefault(c[0], x) |
340 return x | 340 return x |
341 | 341 |
342 for chunk in self.group(clnodes, cl, lookupcl, units=_('changesets'), | |
343 reorder=reorder): | |
344 yield chunk | |
345 progress(msgbundling, None) | |
346 | |
342 # Callback for the manifest, used to collect linkrevs for filelog | 347 # Callback for the manifest, used to collect linkrevs for filelog |
343 # revisions. | 348 # revisions. |
344 # Returns the linkrev node (collected in lookupcl). | 349 # Returns the linkrev node (collected in lookupcl). |
345 def lookupmf(x): | 350 def lookupmf(x): |
346 clnode = mfs[x] | 351 clnode = mfs[x] |
348 mdata = mf.readfast(x) | 353 mdata = mf.readfast(x) |
349 for f, n in mdata.iteritems(): | 354 for f, n in mdata.iteritems(): |
350 if f in changedfiles: | 355 if f in changedfiles: |
351 # record the first changeset introducing this filelog | 356 # record the first changeset introducing this filelog |
352 # version | 357 # version |
353 fnodes[f].setdefault(n, clnode) | 358 fnodes.setdefault(f, {}).setdefault(n, clnode) |
354 return clnode | 359 return clnode |
355 | 360 |
356 for chunk in self.group(clnodes, cl, lookupcl, units=_('changesets'), | |
357 reorder=reorder): | |
358 yield chunk | |
359 progress(msgbundling, None) | |
360 | |
361 for f in changedfiles: | |
362 fnodes[f] = {} | |
363 mfnodes = self.prune(mf, mfs, commonrevs, source) | 361 mfnodes = self.prune(mf, mfs, commonrevs, source) |
364 for chunk in self.group(mfnodes, mf, lookupmf, units=_('manifests'), | 362 for chunk in self.group(mfnodes, mf, lookupmf, units=_('manifests'), |
365 reorder=reorder): | 363 reorder=reorder): |
366 yield chunk | 364 yield chunk |
367 progress(msgbundling, None) | 365 progress(msgbundling, None) |
375 def genfilenodes(): | 373 def genfilenodes(): |
376 for r in filerevlog: | 374 for r in filerevlog: |
377 linkrev = llr(r) | 375 linkrev = llr(r) |
378 if linkrev in needed: | 376 if linkrev in needed: |
379 yield filerevlog.node(r), cl.node(linkrev) | 377 yield filerevlog.node(r), cl.node(linkrev) |
380 fnodes[fname] = dict(genfilenodes()) | 378 return dict(genfilenodes()) |
381 return fnodes.get(fname, {}) | 379 return fnodes.get(fname, {}) |
382 | 380 |
383 for chunk in self.generatefiles(changedfiles, linknodes, commonrevs, | 381 for chunk in self.generatefiles(changedfiles, linknodes, commonrevs, |
384 source): | 382 source): |
385 yield chunk | 383 yield chunk |