Patchwork [1,of,4,STABLE] help: document color/pager pitfalls on Windows

login
register
mail settings
Submitter Matt Harbison
Date May 4, 2017, 3:30 a.m.
Message ID <08d31cd2ae238c5c448f.1493868631@Envy>
Download mbox | patch
Permalink /patch/20421/
State Accepted
Headers show

Comments

Matt Harbison - May 4, 2017, 3:30 a.m.
# HG changeset patch
# User Matt Harbison <matt_harbison@yahoo.com>
# Date 1493863091 14400
#      Wed May 03 21:58:11 2017 -0400
# Branch stable
# Node ID 08d31cd2ae238c5c448f7995c1393575e7f4202c
# Parent  1add41fc3c62e2de22178c24a03593be801f27d2
help: document color/pager pitfalls on Windows

Even though I figured this out a few weeks ago, I was initially puzzled where
the color went when I upgraded to 4.2 on a different Windows machine.  Let's
point users reading the help into the right direction.

I wonder if we should be even more explicit about cmd.exe/MSYS/pager/color
interplay, but at least all of the breadcrumbs are here (I think).

Patch

diff --git a/mercurial/help/color.txt b/mercurial/help/color.txt
--- a/mercurial/help/color.txt
+++ b/mercurial/help/color.txt
@@ -17,6 +17,13 @@ 
 
 See :hg:`help config.ui.color` for details.
 
+.. container:: windows
+
+  The default pager on Windows does not support color, so enabling the pager
+  will effectively disable color.  See :hg:`help config.ui.paginate` to disable
+  the pager.  Alternately, MSYS and Cygwin shells provide `less` as a pager,
+  which can be configured to support ANSI color mode.
+
 Mode
 ====
 
diff --git a/mercurial/help/pager.txt b/mercurial/help/pager.txt
--- a/mercurial/help/pager.txt
+++ b/mercurial/help/pager.txt
@@ -10,6 +10,13 @@ 
 $PAGER. If neither pager.pager, nor $PAGER is set, a default pager
 will be used, typically `less` on Unix and `more` on Windows.
 
+.. container:: windows
+
+  On Windows, `more` is not color aware, so using it effectively disables color.
+  MSYS and Cygwin shells provide `less` as a pager, which can be configured to
+  support ANSI color codes.  See :hg:`help config.color.pagermode` to configure
+  the color mode when invoking a pager.
+
 You can disable the pager for certain commands by adding them to the
 pager.ignore list::