[PATCH] debugstate: add new --datesort option
Adrian Buehlmann
adrian at cadifra.com
Sat Mar 26 14:16:56 UTC 2011
# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1301133573 -3600
# Node ID 10990df78ac070b9b869b319920c15e5766ce96a
# Parent 3740792dbe518e0bd358dcfcb72757ce182b8898
debugstate: add new --datesort option
sorts the output lines by mtime, then by filename
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1340,11 +1340,15 @@ def debugsetparents(ui, repo, rev1, rev2
finally:
wlock.release()
-def debugstate(ui, repo, nodates=None):
+def debugstate(ui, repo, nodates=None, datesort=None):
"""show the contents of the current dirstate"""
timestr = ""
showdate = not nodates
- for file_, ent in sorted(repo.dirstate._map.iteritems()):
+ if datesort:
+ keyfunc = lambda x: (x[1][3], x[0]) # sort by mtime, then by filename
+ else:
+ keyfunc = None # sort by filename
+ for file_, ent in sorted(repo.dirstate._map.iteritems(), key=keyfunc):
if showdate:
if ent[3] == -1:
# Pad or slice to locale representation
@@ -4512,7 +4516,8 @@ table = {
(debugsetparents, [], _('REV1 [REV2]')),
"debugstate":
(debugstate,
- [('', 'nodates', None, _('do not display the saved mtime'))],
+ [('', 'nodates', None, _('do not display the saved mtime')),
+ ('', 'datesort', None, _('sort by saved mtime'))],
_('[OPTION]...')),
"debugsub":
(debugsub,
diff --git a/tests/test-debugcomplete.t b/tests/test-debugcomplete.t
--- a/tests/test-debugcomplete.t
+++ b/tests/test-debugcomplete.t
@@ -231,7 +231,7 @@ Show all commands + options
debugrename: rev
debugrevspec:
debugsetparents:
- debugstate: nodates
+ debugstate: nodates, datesort
debugsub: rev
debugwalk: include, exclude
debugwireargs: three, four, ssh, remotecmd, insecure
More information about the Mercurial-devel
mailing list