revset: add a `node` key for sorting
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 08 Oct 2020 16:14:06 +0200
changeset 45686 17a12f53dd72
parent 45685 57b5452a55d5
child 45687 223296268c4e
revset: add a `node` key for sorting Sorting by node give an arbitrary, but stable order which is useful for sampling.
mercurial/revset.py
tests/test-revset.t
--- a/mercurial/revset.py	Sun Oct 04 22:32:41 2020 -0700
+++ b/mercurial/revset.py	Thu Oct 08 16:14:06 2020 +0200
@@ -2293,6 +2293,7 @@
     b'user': lambda c: c.user(),
     b'author': lambda c: c.user(),
     b'date': lambda c: c.date()[0],
+    b'node': lambda c: c.node(),
 }
 
 
@@ -2356,6 +2357,7 @@
     - ``user`` for user name (``author`` can be used as an alias),
     - ``date`` for the commit date
     - ``topo`` for a reverse topographical sort
+    - ``node`` the nodeid of the revision
 
     The ``topo`` sort order cannot be combined with other sort keys. This sort
     takes one optional argument, ``topo.firstbranch``, which takes a revset that
--- a/tests/test-revset.t	Sun Oct 04 22:32:41 2020 -0700
+++ b/tests/test-revset.t	Thu Oct 08 16:14:06 2020 +0200
@@ -2885,7 +2885,7 @@
   3 b112 m111 u11  120 0
   0 b12  m111 u112 111 10800
 
-  $ hg log -r 'sort(all(), "-desc -date")'
+  $ hg log -r 'sort(all(), "-desc -node")'
   1 b11  m12  u111 112 7200
   4 b111 m112 u111 110 14400
   3 b112 m111 u11  120 0