martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY localrepo.commitctx() has lists of all changed files, as well as lists of added and removed files. The list of all files is unsorted and changelog.add() will sort it. Let's also sort the lists of added and removed files at a lower level (manifestrevlog.add()) for consistency. I don't think this will be a performance problem (someone should have fixed the sorting in changelog.add() if it were). REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6390 AFFECTED FILES mercurial/localrepo.py mercurial/manifest.py CHANGE DETAILS diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1486,8 +1486,8 @@ _checkforbidden(added) # combine the changed lists into one sorted iterator - work = heapq.merge([(x, False) for x in added], - [(x, True) for x in removed]) + work = heapq.merge([(x, False) for x in sorted(added)], + [(x, True) for x in sorted(removed)]) arraytext, deltatext = m.fastdelta(self.fulltextcache[p1], work) cachedelta = self._revlog.rev(p1), deltatext diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -2615,8 +2615,8 @@ raise # update manifest - removed = [f for f in sorted(removed) if f in m1 or f in m2] - drop = [f for f in removed if f in m] + removed = [f for f in removed if f in m1 or f in m2] + drop = sorted([f for f in removed if f in m]) for f in drop: del m[f] files = changed + removed To: martinvonz, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel