tests: check for bzr support by importing bzrlib
This is better than starting bzr --version, because it works correctly when
running tests with a non-default Python (version).
Improve error handling in osutil.c
1) In posix part set error when path is too long so instead of
SystemError: error returned without exception set
it will raise
ValueError: path too long
2) In Win32 part replace generic
PyErr_SetExcFromWindowsErrWithFilename
by
PyErr_SetFromWindowsErrWithFilename
The exception returned is WinError(based on OSError) and
some rudimentary errno translation is performed from Windows error range
to errno module friendly range so errors like ENOENT can be handled via symbolic
constant and consistently between Win32 and Posix.
fix conflicting variables when no native osutil is available
thanks weijun for the bug report and patch, fix
issue1309
osutil: implementation for Win32
Use information provided by FindFile... Win32 calls
to generate stat information without lstat call per file.
rwx bits in st_mode are ignored as they are not stored in Win32 fs
and Mercurial does not use them
Unicode path / path names over _MAX_PATH are intentionally not supported.