chistedit: properly show verbose diffs
I'm not sure if that ever worked and it's an internal API breakage,
but `"verbose": True` is not correctly parsed, as most of these
options are parsed by diffopts, whereas verbose is a global option.
Setting the UI to verbose instead does work and does show a verbose
patch, with full commit message.
It also shows all files, which unfortunately are a bit hard to read on
a single line in the default verbose template. Thus, we also change
the default template to use the status template, which shows one file
per line as well as its modification state.
from __future__ import absolute_import, print_function
import os
from mercurial import (
pycompat,
ui as uimod,
)
if pycompat.ispy3:
xrange = range
hgrc = os.environ['HGRCPATH']
f = open(hgrc)
basehgrc = f.read()
f.close()
print(' hgrc settings command line options final result ')
print(' quiet verbo debug quiet verbo debug quiet verbo debug')
for i in xrange(64):
hgrc_quiet = bool(i & 1<<0)
hgrc_verbose = bool(i & 1<<1)
hgrc_debug = bool(i & 1<<2)
cmd_quiet = bool(i & 1<<3)
cmd_verbose = bool(i & 1<<4)
cmd_debug = bool(i & 1<<5)
f = open(hgrc, 'w')
f.write(basehgrc)
f.write('\n[ui]\n')
if hgrc_quiet:
f.write('quiet = True\n')
if hgrc_verbose:
f.write('verbose = True\n')
if hgrc_debug:
f.write('debug = True\n')
f.close()
u = uimod.ui.load()
if cmd_quiet or cmd_debug or cmd_verbose:
u.setconfig(b'ui', b'quiet', pycompat.bytestr(bool(cmd_quiet)))
u.setconfig(b'ui', b'verbose', pycompat.bytestr(bool(cmd_verbose)))
u.setconfig(b'ui', b'debug', pycompat.bytestr(bool(cmd_debug)))
check = ''
if u.debugflag:
if not u.verbose or u.quiet:
check = ' *'
elif u.verbose and u.quiet:
check = ' +'
print(('%2d %5s %5s %5s %5s %5s %5s -> %5s %5s %5s%s'
% (i, hgrc_quiet, hgrc_verbose, hgrc_debug,
cmd_quiet, cmd_verbose, cmd_debug,
u.quiet, u.verbose, u.debugflag, check)))