Patchwork D6390: commit: move sorting of added and removed files list to lower level

login
register
mail settings
Submitter phabricator
Date May 16, 2019, 5:13 p.m.
Message ID <differential-rev-PHID-DREV-6t3v66l6sz4cydwx5262-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/40098/
State Superseded
Headers show

Comments

phabricator - May 16, 2019, 5:13 p.m.
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




To: martinvonz, #hg-reviewers
Cc: mercurial-devel
phabricator - May 16, 2019, 5:41 p.m.
pulkit added a comment.


  The changes looks okay but I can't think why you want to do that. Can you add some details about the motivation for this change to commit message?

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6390

To: martinvonz, #hg-reviewers
Cc: pulkit, mercurial-devel
phabricator - May 16, 2019, 5:42 p.m.
martinvonz added a comment.


  In https://phab.mercurial-scm.org/D6390#92963, @pulkit wrote:
  
  > The changes looks okay but I can't think why you want to do that. Can you add some details about the motivation for this change to commit message?
  
  
  It was mostly just consistency, but I'll add a bit more

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6390

To: martinvonz, #hg-reviewers
Cc: pulkit, mercurial-devel

Patch

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