serve: add and use portable spawnvp replacement
There is no standard python command to really detach a process under Windows.
Instead we use the low level API wrapped by subprocess module with all
necessary options to avoid any kind of context inheritance. Unfortunately, this
version still opens a new window for the child process.
The following have been tried:
- os.spawnv(os.P_NOWAIT): works but the child process is killed when parent
console terminates.
- os.spawnv(os.P_DETACH): works on python25, hang on python26 when writing to
the hgweb output socket.
- subprocess.CreateProcess() hack without shell mode: similar to
os.spawnv(os.P_DETACH).
Fix 1/3 for
issue421
shrink-revlog: help/doc tweaks
- make it look right in 'hg help extensions'
- clarify --revlog option
- add a main program to tell users this is no longer a standalone script
shrink-revlog: make it work on windows (
issue1976)
shrink-revlog: avoid cryptic error when used as an extension
When shrink-revlog is used as an extension, it would produce an error when
switching back to stable because the script will try to execute itself.
transaction: initialize self.journal to None after deletion
This avoid a warning when having an empty transaction, where hg would try to
delete the journal twice.