--- a/mercurial/commands.py Sat Mar 26 13:05:17 2011 +0100
+++ b/mercurial/commands.py Sat Mar 26 10:59:33 2011 +0100
@@ -1340,11 +1340,15 @@
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 @@
(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,