##// END OF EJS Templates
debugobsolete: add formatter support (issue5134)...
Yuya Nishihara -
r29795:142ae018 default
parent child Browse files
Show More
@@ -1611,25 +1611,26 b' def show_changeset(ui, repo, opts, buffe'
1611
1611
1612 return changeset_templater(ui, repo, matchfn, opts, tmpl, mapfile, buffered)
1612 return changeset_templater(ui, repo, matchfn, opts, tmpl, mapfile, buffered)
1613
1613
1614 def showmarker(ui, marker, index=None):
1614 def showmarker(fm, marker, index=None):
1615 """utility function to display obsolescence marker in a readable way
1615 """utility function to display obsolescence marker in a readable way
1616
1616
1617 To be used by debug function."""
1617 To be used by debug function."""
1618 if index is not None:
1618 if index is not None:
1619 ui.write("%i " % index)
1619 fm.write('index', '%i ', index)
1620 ui.write(hex(marker.precnode()))
1620 fm.write('precnode', '%s ', hex(marker.precnode()))
1621 for repl in marker.succnodes():
1621 succs = marker.succnodes()
1622 ui.write(' ')
1622 fm.condwrite(succs, 'succnodes', '%s ',
1623 ui.write(hex(repl))
1623 fm.formatlist(map(hex, succs), name='node'))
1624 ui.write(' %X ' % marker.flags())
1624 fm.write('flag', '%X ', marker.flags())
1625 parents = marker.parentnodes()
1625 parents = marker.parentnodes()
1626 if parents is not None:
1626 if parents is not None:
1627 ui.write('{%s} ' % ', '.join(hex(p) for p in parents))
1627 fm.write('parentnodes', '{%s} ',
1628 ui.write('(%s) ' % util.datestr(marker.date()))
1628 fm.formatlist(map(hex, parents), name='node', sep=', '))
1629 ui.write('{%s}' % (', '.join('%r: %r' % t for t in
1629 fm.write('date', '(%s) ', fm.formatdate(marker.date()))
1630 sorted(marker.metadata().items())
1630 meta = marker.metadata().copy()
1631 if t[0] != 'date')))
1631 meta.pop('date', None)
1632 ui.write('\n')
1632 fm.write('metadata', '{%s}', fm.formatdict(meta, fmt='%r: %r', sep=', '))
1633 fm.plain('\n')
1633
1634
1634 def finddate(ui, repo, date):
1635 def finddate(ui, repo, date):
1635 """Find the tipmost changeset that matches the given date spec"""
1636 """Find the tipmost changeset that matches the given date spec"""
@@ -3044,7 +3044,7 b' def debuglocks(ui, repo, **opts):'
3044 ('r', 'rev', [], _('display markers relevant to REV')),
3044 ('r', 'rev', [], _('display markers relevant to REV')),
3045 ('', 'index', False, _('display index of the marker')),
3045 ('', 'index', False, _('display index of the marker')),
3046 ('', 'delete', [], _('delete markers specified by indices')),
3046 ('', 'delete', [], _('delete markers specified by indices')),
3047 ] + commitopts2,
3047 ] + commitopts2 + formatteropts,
3048 _('[OBSOLETED [REPLACEMENT ...]]'))
3048 _('[OBSOLETED [REPLACEMENT ...]]'))
3049 def debugobsolete(ui, repo, precursor=None, *successors, **opts):
3049 def debugobsolete(ui, repo, precursor=None, *successors, **opts):
3050 """create arbitrary obsolete marker
3050 """create arbitrary obsolete marker
@@ -3132,6 +3132,7 b' def debugobsolete(ui, repo, precursor=No'
3132 markerset = set(markers)
3132 markerset = set(markers)
3133 isrelevant = lambda m: m in markerset
3133 isrelevant = lambda m: m in markerset
3134
3134
3135 fm = ui.formatter('debugobsolete', opts)
3135 for i, m in enumerate(markerstoiter):
3136 for i, m in enumerate(markerstoiter):
3136 if not isrelevant(m):
3137 if not isrelevant(m):
3137 # marker can be irrelevant when we're iterating over a set
3138 # marker can be irrelevant when we're iterating over a set
@@ -3142,8 +3143,10 b' def debugobsolete(ui, repo, precursor=No'
3142 # to get the correct indices, but only display the ones that
3143 # to get the correct indices, but only display the ones that
3143 # are relevant to --rev value
3144 # are relevant to --rev value
3144 continue
3145 continue
3146 fm.startitem()
3145 ind = i if opts.get('index') else None
3147 ind = i if opts.get('index') else None
3146 cmdutil.showmarker(ui, m, index=ind)
3148 cmdutil.showmarker(fm, m, index=ind)
3149 fm.end()
3147
3150
3148 @command('debugpathcomplete',
3151 @command('debugpathcomplete',
3149 [('f', 'full', None, _('complete an entire path')),
3152 [('f', 'full', None, _('complete an entire path')),
@@ -261,7 +261,7 b' Show all commands + options'
261 debuglocks: force-lock, force-wlock
261 debuglocks: force-lock, force-wlock
262 debugmergestate:
262 debugmergestate:
263 debugnamecomplete:
263 debugnamecomplete:
264 debugobsolete: flags, record-parents, rev, index, delete, date, user
264 debugobsolete: flags, record-parents, rev, index, delete, date, user, template
265 debugpathcomplete: full, normal, added, removed
265 debugpathcomplete: full, normal, added, removed
266 debugpushkey:
266 debugpushkey:
267 debugpvec:
267 debugpvec:
@@ -645,6 +645,80 b' List of both'
645 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
645 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
646 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
646 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
647
647
648 List of all markers in JSON
649
650 $ hg debugobsolete -Tjson
651 [
652 {
653 "date": [1339.0, 0],
654 "flag": 0,
655 "metadata": {"user": "test"},
656 "precnode": "1339133913391339133913391339133913391339",
657 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
658 },
659 {
660 "date": [1339.0, 0],
661 "flag": 0,
662 "metadata": {"user": "test"},
663 "precnode": "1337133713371337133713371337133713371337",
664 "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]
665 },
666 {
667 "date": [121.0, 120],
668 "flag": 12,
669 "metadata": {"user": "test"},
670 "precnode": "245bde4270cd1072a27757984f9cda8ba26f08ca",
671 "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]
672 },
673 {
674 "date": [1338.0, 0],
675 "flag": 1,
676 "metadata": {"user": "test"},
677 "precnode": "5601fb93a350734d935195fee37f4054c529ff39",
678 "succnodes": ["6f96419950729f3671185b847352890f074f7557"]
679 },
680 {
681 "date": [1338.0, 0],
682 "flag": 0,
683 "metadata": {"user": "test"},
684 "precnode": "ca819180edb99ed25ceafb3e9584ac287e240b00",
685 "succnodes": ["1337133713371337133713371337133713371337"]
686 },
687 {
688 "date": [1337.0, 0],
689 "flag": 0,
690 "metadata": {"user": "test"},
691 "precnode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",
692 "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]
693 },
694 {
695 "date": [0.0, 0],
696 "flag": 0,
697 "metadata": {"user": "test"},
698 "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],
699 "precnode": "94b33453f93bdb8d457ef9b770851a618bf413e1",
700 "succnodes": []
701 },
702 {
703 "date": *, (glob)
704 "flag": 0,
705 "metadata": {"user": "test"},
706 "precnode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",
707 "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]
708 }
709 ]
710
711 Template keywords
712
713 $ hg debugobsolete -r6 -T '{succnodes % "{node|short}"} {date|shortdate}\n'
714 3de5eca88c00 ????-??-?? (glob)
715 $ hg debugobsolete -r6 -T '{join(metadata % "{key}={value}", " ")}\n'
716 user=test
717 $ hg debugobsolete -r6 -T '{metadata}\n'
718 'user': 'test'
719 $ hg debugobsolete -r6 -T '{flag} {get(metadata, "user")}\n'
720 0 test
721
648 #if serve
722 #if serve
649
723
650 Test the debug output for exchange
724 Test the debug output for exchange
@@ -1110,6 +1184,25 b' only a subset of those are displayed (be'
1110 $ hg debugobsolete --index --rev "3+7"
1184 $ hg debugobsolete --index --rev "3+7"
1111 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
1185 1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
1112 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
1186 3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
1187 $ hg debugobsolete --index --rev "3+7" -Tjson
1188 [
1189 {
1190 "date": *, (glob)
1191 "flag": 0,
1192 "index": 1,
1193 "metadata": {"user": "test"},
1194 "precnode": "6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1",
1195 "succnodes": ["d27fb9b066076fd921277a4b9e8b9cb48c95bc6a"]
1196 },
1197 {
1198 "date": *, (glob)
1199 "flag": 0,
1200 "index": 3,
1201 "metadata": {"user": "test"},
1202 "precnode": "4715cf767440ed891755448016c2b8cf70760c30",
1203 "succnodes": ["7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d"]
1204 }
1205 ]
1113
1206
1114 Test the --delete option of debugobsolete command
1207 Test the --delete option of debugobsolete command
1115 $ hg debugobsolete --index
1208 $ hg debugobsolete --index
General Comments 0
You need to be logged in to leave comments. Login now