# HG changeset patch # User Jun Wu # Date 1462382304 -3600 # Node ID 29a7d591ff42d8c812386acc3df0411f54bc8c6e # Parent e2a1648a6ce78715e5cb57ba0317c43649480ac0 ui: add new config option for help text width Before this patch, when printing help text using `hg help`, or `hg log -h`, the output will wrap at 78 chars even if the user has a bigger terminal width and there is no config option to change it, making the experience different from the commonly used `man` tool. This patch introduces a new config option `ui.textwidth`, which replaces the hardcoded number. It's set to 78 by default to maintain compatibility. When set to 0, `hg help` will behave more like `man`. diff -r e2a1648a6ce7 -r 29a7d591ff42 mercurial/commands.py --- a/mercurial/commands.py Tue May 03 15:26:51 2016 +0000 +++ b/mercurial/commands.py Wed May 04 18:18:24 2016 +0100 @@ -4567,7 +4567,10 @@ Returns 0 if successful. """ - textwidth = min(ui.termwidth(), 80) - 2 + textwidth = ui.configint('ui', 'textwidth', 78) + termwidth = ui.termwidth() - 2 + if textwidth <= 0 or termwidth < textwidth: + textwidth = termwidth keep = opts.get('system') or [] if len(keep) == 0: diff -r e2a1648a6ce7 -r 29a7d591ff42 mercurial/help/config.txt --- a/mercurial/help/config.txt Tue May 03 15:26:51 2016 +0000 +++ b/mercurial/help/config.txt Wed May 04 18:18:24 2016 +0100 @@ -1737,6 +1737,13 @@ large organisation with its own Mercurial deployment process and crash reports should be addressed to your internal support. +``textwidth`` + Maximum width of help text. A longer line generated by ``hg help`` or + ``hg subcommand --help`` will be broken after white space to get this + width or the terminal width, whichever comes first. + A non-positive value will disable this and the terminal width will be + used. (default: 78) + ``timeout`` The timeout used when a lock is held (in seconds), a negative value means no timeout. (default: 600) diff -r e2a1648a6ce7 -r 29a7d591ff42 tests/test-help.t --- a/tests/test-help.t Tue May 03 15:26:51 2016 +0000 +++ b/tests/test-help.t Wed May 04 18:18:24 2016 +0100 @@ -429,6 +429,22 @@ -h --help display help and exit --hidden consider hidden changesets +Test the textwidth config option + + $ hg root -h --config ui.textwidth=50 + hg root + + print the root (top) of the current working + directory + + Print the root directory of the current + repository. + + Returns 0 on success. + + (some details hidden, use --verbose to show + complete help) + Test help option with version option $ hg add -h --version