sslutil: handle setups without .getpeercert() early in the validator
This simplifies the code and makes the flow more obvious and reduces the
indentation level.
sslutil: verify that wrap_socket really wrapped the socket
This works around that ssl.wrap_socket silently skips ssl negotiation on
sockets that was connected but since then has been reset by the peer but not
yet closed at the Python level. That leaves the socket in a state where
.getpeercert() fails with an AttributeError on None. See
http://bugs.python.org/
issue13721 .
A call to .cipher() is now used to verify that the wrapping really did succeed.
Otherwise it aborts with "ssl connection failed".
largefiles: remove pasted code
Refactor and remove pasted code from lfcommands.py
largefiles: add tests for uncovered codepaths (
issue3092)
Add tests for lfconvert codepaths where:
* largefiles have been both renamed and relinked
* .hgtags has invalid content
largefiles: add error checking to tags conversion (
issue3092)
Check for errors when parsing .hgtags during lfconvert,
and skip lines that don't parse or refer to invalid changesets.
largefiles: don't reference uninitialized variable (
issue3092)
i18n-ru: synchronized with
e251250ac20b
rebase: reinstate old-style rev spec support for the source and base (
issue3181)
As of
b12362ab13e7 (first released as part of Mercurial 2.0), the rebase command
accepted ONLY revsets for the source and base arguments and no longer accepted
old-style revision specifications. As a result, some revision names were no
longer recognised, e.g.
hg rebase --base br-anch
abort: unknown revision 'br'!
These arguments are now interpreted first as old-style revision specifications,
then as revsets when no matching revision is found. This restores backwards
compatibility with releases prior to 2.0.