zeroconf: initial implementation
This is a basic, hopefully portable, zeroconf extension.
Enabling it will allow hg paths/pull/push/clone/etc. to automatically
discover services advertised as "_hg".
And naturally, running hg serve will advertise itself as a "_hg"
service as well as a "_http" service for use by browsers.
Eliminate normpath from foldmap calls.
Normcase already takes care of upper/lower case and /->\ conversions.
What's left for normpath is folding of a/../a sequences but this should
be either done consistently on both non-folding and folding code path
or not at all, otherwise we are introducing inconsistent behavior between the
two that has nothing to do with case folding.
Second argument against it - normpath being pure Python function is very slow -
as much as 50% of time is spend just inside normpath call on my repository.
issue 1286: dirstat regression on case folding systems
This patch fixes regression reported in 1286 that causes util.fspath
to be called for every file not in current manifest - including ignored files.
The regression is quite severe - the time for simple hg st goes from 5s to 1m38s
on one of my source trees - which basically renders mercurial useless.
status: don't warn about missing files present in base revision (
issue1323)
merge: fix bug going backwards for already reverted files (
issue1303)
churn: generalisation, now it is possible to see statistics grouped by custom template
provide nicer feedback when an unknown node id is passed to a command
Previously, an unknown node id would lead to the following error:
abort: 00changelog.i@
343445453433: no node!
All other unknown revision would instead display as:
abort: unknown revision '
343445453'!
The former error message has been suppressed in favor of the latter.
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).