Windows: improve performance via buffered I/O
The posixfile_nt code hits the win32 file API directly, which
essentially amounts to performing a system call for every read and
write. This is slow.
We add a C extension that lets us use a Python file object instead,
but preserve our desired POSIX-like semantics (the ability to rename
or delete a file that is being accessed).
If the C extension is not available (e.g. in a VPS environment
without a compiler), we fall back to the posixfile_nt code.
adding a
# missing arg
hg cat: invalid arguments
hg cat [OPTION]... FILE...
output the current or given revision of files
Print the specified files as they were at the given revision. If
no revision is given, the parent of the working directory is used,
or tip if no revision is checked out.
Output may be to a file, in which case the name of the file is
given using a format string. The formatting rules are the same as
for the export command, with the following additions:
%s basename of file being printed
%d dirname of file being printed, or '.' if in repository root
%p root-relative path name of file being printed
options:
-o --output print output to file with formatted name
-r --rev print the given revision
--decode apply any matching decode filter
-I --include include names matching the given patterns
-X --exclude exclude names matching the given patterns
use "hg -v help cat" to show global options
% [defaults]
a
a
% no repo
abort: There is no Mercurial repository here (.hg not found)!