[PATCH 3 of 5] Fixing newertarget to report changesets in a better order

Eric Hopper hopper at omnifarious.org
Fri Sep 30 12:10:56 CDT 2005


# HG changeset patch
# User Eric Hopper <hopper at omnifarious.org>
# Node ID d41c5138f6bdb8ebaf7a2caa5eb1c2ffb455d1ba
# Parent  e91ea9bb945d76c0f58fcc030d501e650904fddb
Fixing newertarget to report changesets in a better order.

diff -r e91ea9bb945d -r d41c5138f6bd mercurial/localrepo.py
--- a/mercurial/localrepo.py	Fri Sep 30 15:36:18 2005
+++ b/mercurial/localrepo.py	Fri Sep 30 16:44:37 2005
@@ -759,16 +759,25 @@
             self.ui.debug("No outgoing nodes needed.\n")
             return []
 
+        orderedselected = []
         for i in xrange(lowestrev, targetrev):
             n = cl.node(i)
             if n not in prunedset:
                 continue
             if n not in selected: # not listed yet
+                wasselected = False
                 for p in cl.parents(n):
                     if p in selected: # parent listed
                         selected[n] = 1
-        self.ui.debug('Sending %u changesets.\n' % (len(selected),))
-        return selected.keys()
+                        wasselected = True
+                if wasselected:
+                    orderedselected.append(n)
+            else:
+                orderedselected.append(n)
+        orderedselected.append(targetnode)
+        assert len(selected) == len(orderedselected)
+        self.ui.debug('Sending %u changesets.\n' % (len(orderedselected),))
+        return orderedselected
 
     def findincoming(self, remote, base=None, heads=None):
         m = self.changelog.nodemap


More information about the Mercurial mailing list