# HG changeset patch # User Adrian Buehlmann # Date 1301133573 -3600 # Node ID 0f9282dc87f8e2ac5f0ad988cb556657d65127c1 # Parent 627e50e9e316912a1b84de3b7b95f72c5b28f329 debugstate: add new --datesort option sorts the output lines by mtime, then by filename diff -r 627e50e9e316 -r 0f9282dc87f8 mercurial/commands.py --- 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, diff -r 627e50e9e316 -r 0f9282dc87f8 tests/test-debugcomplete.t --- a/tests/test-debugcomplete.t Sat Mar 26 13:05:17 2011 +0100 +++ b/tests/test-debugcomplete.t Sat Mar 26 10:59:33 2011 +0100 @@ -231,7 +231,7 @@ debugrename: rev debugrevspec: debugsetparents: - debugstate: nodates + debugstate: nodates, datesort debugsub: rev debugwalk: include, exclude debugwireargs: three, four, ssh, remotecmd, insecure