diff --git a/mercurial/changelog.py b/mercurial/changelog.py --- a/mercurial/changelog.py +++ b/mercurial/changelog.py @@ -545,19 +545,3 @@ class changelog(revlog.revlog): just to access this is costly.""" extra = self.read(rev)[5] return encoding.tolocal(extra.get("branch")), 'close' in extra - - def _addrevision(self, node, rawtext, transaction, *args, **kwargs): - # overlay over the standard revlog._addrevision to track the new - # revision on the transaction. - rev = len(self) - node = super(changelog, self)._addrevision(node, rawtext, transaction, - *args, **kwargs) - revs = transaction.changes.get('revs') - if revs is not None: - if revs: - assert revs[-1] + 1 == rev - revs = pycompat.membershiprange(revs[0], rev + 1) - else: - revs = pycompat.membershiprange(rev, rev + 1) - transaction.changes['revs'] = revs - return node diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1393,7 +1393,7 @@ class localrepository(object): releasefn=releasefn, checkambigfiles=_cachedfiles, name=desc) - tr.changes['revs'] = pycompat.xrange(0, 0) + tr.changes['origrepolen'] = len(self) tr.changes['obsmarkers'] = set() tr.changes['phases'] = {} tr.changes['bookmarks'] = {} @@ -1611,7 +1611,7 @@ class localrepository(object): # later call to `destroyed` will refresh them. return - if tr is None or tr.changes['revs']: + if tr is None or tr.changes['origrepolen'] < len(self): # updating the unfiltered branchmap should refresh all the others, self.ui.debug('updating the branch cache\n') branchmap.updatecache(self.filtered('served')) diff --git a/mercurial/obsutil.py b/mercurial/obsutil.py --- a/mercurial/obsutil.py +++ b/mercurial/obsutil.py @@ -465,13 +465,13 @@ def getobsoleted(repo, tr): succsmarkers = repo.obsstore.successors.get public = phases.public addedmarkers = tr.changes.get('obsmarkers') - addedrevs = tr.changes['revs'] + origrepolen = tr.changes['origrepolen'] seenrevs = set() obsoleted = set() for mark in addedmarkers: node = mark[0] rev = torev(node) - if rev is None or rev in seenrevs or rev in addedrevs: + if rev is None or rev in seenrevs or rev >= origrepolen: continue seenrevs.add(rev) if phase(repo, rev) == public: diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -1618,13 +1618,13 @@ def registersummarycallback(repo, otr, t @reportsummary def reportnewcs(repo, tr): """Report the range of new revisions pulled/unbundled.""" - newrevs = tr.changes.get('revs', pycompat.xrange(0, 0)) - if not newrevs: + origrepolen = tr.changes.get('origrepolen', len(repo)) + if origrepolen >= len(repo): return # Compute the bounds of new revisions' range, excluding obsoletes. unfi = repo.unfiltered() - revs = unfi.revs('%ld and not obsolete()', newrevs) + revs = unfi.revs('%d: and not obsolete()', origrepolen) if not revs: # Got only obsoletes. return @@ -1641,13 +1641,13 @@ def registersummarycallback(repo, otr, t """Report statistics of phase changes for changesets pre-existing pull/unbundle. """ - newrevs = tr.changes.get('revs', pycompat.xrange(0, 0)) + origrepolen = tr.changes.get('origrepolen', len(repo)) phasetracking = tr.changes.get('phases', {}) if not phasetracking: return published = [ rev for rev, (old, new) in phasetracking.iteritems() - if new == phases.public and rev not in newrevs + if new == phases.public and rev < origrepolen ] if not published: return diff --git a/tests/test-clone-uncompressed.t b/tests/test-clone-uncompressed.t --- a/tests/test-clone-uncompressed.t +++ b/tests/test-clone-uncompressed.t @@ -247,6 +247,7 @@ Clone with background file closing enabl sending stream_out command 1027 files to transfer, 96.3 KB of data starting 4 threads for background file closing + updating the branch cache transferred 96.3 KB in * seconds (*/sec) (glob) query 1; heads sending batch command @@ -275,6 +276,7 @@ Clone with background file closing enabl 1030 files to transfer, 96.4 KB of data starting 4 threads for background file closing starting 4 threads for background file closing + updating the branch cache transferred 96.4 KB in * seconds (* */sec) (glob) bundle2-input-part: total payload size 112077 bundle2-input-part: "listkeys" (params: 1 mandatory) supported diff --git a/tests/test-stream-bundle-v2.t b/tests/test-stream-bundle-v2.t --- a/tests/test-stream-bundle-v2.t +++ b/tests/test-stream-bundle-v2.t @@ -88,6 +88,7 @@ Test that we can apply the bundle as a s transferred 1.65 KB in \d\.\d seconds \(.*/sec\) (re) bundle2-input-part: total payload size 1840 bundle2-input-bundle: 0 parts total + updating the branch cache finished applying clone bundle query 1; heads sending batch command @@ -142,6 +143,7 @@ Test that we can apply the bundle as a s transferred 1.65 KB in *.* seconds (*/sec) (glob) bundle2-input-part: total payload size 1840 bundle2-input-bundle: 0 parts total + updating the branch cache finished applying clone bundle query 1; heads sending batch command