doc/README
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 29 Mar 2020 13:06:59 -0700
changeset 44655 02fa5392bab6
parent 9419 3516a4e877c1
permissions -rw-r--r--
dispatch: force \n for newlines on sys.std* streams (BC) The sys.std* streams behave differently on Python 3. On Python 3, these streams are an io.TextIOWrapper that wraps a binary buffer stored on a .buffer attribute. These TextIOWrapper instances normalize \n to os.linesep by default. On Windows, this means that \n is normalized to \r\n. So functions like print() which have an implicit end='\n' will actually emit \r\n for line endings. While most parts of Mercurial go through the ui.write() layer to print output, some code - notably in extensions and hooks - can use print(). If this code was using print() or otherwise writing to sys.std* on Windows, Mercurial would emit \r\n. In reality, pretty much everything on Windows reacts to \n just fine. Mercurial itself doesn't emit \r\n when going through the ui layer. Changing the sys.std* streams to not normalize line endings sounds like a scary change. But I think it is safe. It also makes Mercurial on Python 3 behave similarly to Python 2, which did not perform \r\n normalization in print() by default. .. bc:: sys.{stdout, stderr, stdin} now use \n line endings on Python 3 Differential Revision: https://phab.mercurial-scm.org/D8339
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9172
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
     1
Mercurial's documentation is kept in reStructuredText format, which is
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
     2
a simple plain text format that's easy to read and edit:
177
91055f795d88 adding doc directory and files
jake@edge2.net
parents:
diff changeset
     3
9172
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
     4
  http://docutils.sourceforge.net/rst.html
177
91055f795d88 adding doc directory and files
jake@edge2.net
parents:
diff changeset
     5
9172
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
     6
It's also convertible to a variety of other formats including standard
9419
3516a4e877c1 doc/README: simplify instructions
Martin Geisler <mg@lazybytes.net>
parents: 9406
diff changeset
     7
UNIX man page format and HTML. You'll need to install Docutils:
177
91055f795d88 adding doc directory and files
jake@edge2.net
parents:
diff changeset
     8
9172
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
     9
  http://docutils.sourceforge.net/
177
91055f795d88 adding doc directory and files
jake@edge2.net
parents:
diff changeset
    10
9172
bc1de09090bc doc: update README with links to Docutils
Martin Geisler <mg@lazybytes.net>
parents: 5048
diff changeset
    11
Use the Makefile in this directory to generate the man and HTML pages.