annotate doc/README @ 45022:e3b19004087a stable

convert: correctly convert paths to UTF-8 for Subversion The previous code using encoding.tolocal() only worked by chance in these situations: * The string is ASCII: The fast path was triggered and the string was returned unmodified. * The local encoding is UTF-8: The source and target encoding is the same. * The string is not valid UTF-8 and the native encoding is ISO-8859-1: If the string doesn’t decode using UTF-8, ISO-8859-1 is tried as a fallback. During `hg convert`, the local encoding is always UTF-8. The irony is that in this case, encoding.tolocal() behaves like what someone would expect the reverse function, encoding.fromlocal(), to do. When the locale encoding is ISO-8859-15, trying to convert a SVN repo `/tmp/a€` failed before like this: file:///tmp/a%C2%A4 does not look like a Subversion repository to libsvn version 1.14.0 The correct URL is `file:///tmp/a%E2%82%AC`. Unlike previously (with the ISO-8859-1 fallback), decoding the path using the locale encoding can fail. In this case, we have to bail out, as Subversion won’t be able to do anything useful with the path.
author Manuel Jacob <me@manueljacob.de>
date Mon, 29 Jun 2020 15:03:36 +0200
parents 3516a4e877c1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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.