dirstate: always add times to map as integers
Fix bug spotted by Dov Feldstern
Take advantage of fstat calls clustering per directory if OS support it.
util module implements two versions of statfiles function
_statfiles calls lstat per file
_statfiles_clustered takes advantage of optimizations in osutil.c, stats all
files in directory at once when new directory is hit and caches the results
util.statfiles dispatches to appropriate version during module loading
The speedup on directory tree with 2k directories and 63k files is about
factor of 1.8 (1.3s -> 0.8s for hg diff - hg startup overhead about .2s)
At this point only Win32 now benefit from this patch.
Rest of OSes use the non clustered implementation.
Document email.charsets in hgrc.5
hgrc.5.ja.txt probably should include an example like:
[email]
charsets = iso-8859-1, iso-8859-15, windows-1252, iso-8859-2,
windows-1250, iso-2022-jp, iso-2022-jp-ms
notify: mime-encode messages
- addresses will be properly encoded
- message bodies will also be encoded as we are not sending
patches that are meant to be applied
- update test output
- adapt test-keyword to ignore the new headers
patchbomb: mime-encode headers and parts not containing patches
Do nothing for "hg email --test" to preserve display.
mail: add methods to handle non-ascii chars
- headencode, addressencode: encode headers
- mimeencode: encode message parts not containing patches
- new email config "charsets"
Users may configure email.charsets as a list of charsets they
consider appropriate for the recipients of their outgoing mails.
Conversion is tried in this order:
1. us-ascii
(ascii, us-ascii are removed from email.charsets if present)
2. email.charsets (if present) in order given
3. util._fallbackencoding, util._encoding, utf-8
if not already in email.charsets
mq: Allow qrefresh --silent to take parameters
'hg qrefresh --short file.txt' now adds changes made to file.txt to current
patch.
This builds on a patch for implementing --amend by Kirill Smelkov as discussed
in
issue933.
FIXME: Why do mq refresh have two matchers if we only need one?