revlog: zlib.error sent to the user (issue3424)

Give the user the zlib error message instead of a backtrace when decompression
fails.
help: fix 'hg help -k' matching an extension without docs

getattr is not needed, __doc__ always exists and defaults to None
merge heads
test-revert: enable for Windows
test-log: enable for Windows
test-import: remove unneeded chmod call

As pointed out by Mads, setting the x bit on dummypatch.py is unneeded, because
it is called with 'python ../dummypatch.py'.
test-import: enable for Windows
tests/run-tests: use $TMP on Windows (issue3490)

This is just a short-term workaround for that issue. More work needs to be
done on scmutil.canonpath & friends.

$TMP on Windows is specified to be defined, and it has correct casing, so we
can use that as the default dir for tempfile.mkdtemp on Windows.
tests/hghave: implement #if true / #if false

For unconditionally testing / skipping a section. Useful for testing the test
infrastructure in test-run-tests.t and for debugging/developing tests.
test-convert: disable autocrlf for git

Git might have autocrlf=true as a global or default setting, especially on
windows. That is not expected in the tests and can cause
+  warning: LF will be replaced by CRLF in d/b.
+  The file will have its original line endings in your working directory.

Explicitly setting it false will make the test pass in some setups - but still
not out of the box.
test-convert-git: remove the read-only attribute of repository files

Git object files are stored read-only in the filesystem. Trying to remove a
read-only file on windows will fail with access denied, so we have to make them
writeable before they can be removed.
test-mq-subrepo-svn: enable for Windows
help: test keyword search in translated text.

Tests that help keyword search is able to search the translated help text when
using a non-English language.
test-commit: remove extra cd ..

This specific cd .. leaves the base directory of the test ($TESTTMP).

Removing it avoids that test artifacts (e.g. files) are created
outside of the base directory.
tests/run-tests: avoid C:/ in arguments

MSYS replaces C:/... in arguments with C;... as it interprets the C:/ as a
colon separated POSIX path list. The colon is replaced with ; (path separator
on Windows) according to

  http://www.mingw.org/wiki/Posix_path_conversion

So we must not replace \ with / for neither $TESTTMP nor $TESTDIR, but we
have to keep replacing \ with / for the Popen4 call of function hghave. If we
don't do the latter, test-run-tests.t will fail with

  $ python run-tests.py --local test-run-tests.t

  --- C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t
  +++ C:\Users\adi\hgrepos\hg-main\tests\test-run-tests.t.err
  @@ -70,6 +70,7 @@
     tested
   #else
     $ echo skipped
  +  skipped
   #endif

   #if false


An additional tweak in test-ssh.t is needed that globs away an encoded path,
as it can't be translated back to $TESTTMP, because the backslashes in the
output have been already encoded as %5C.

This patch makes test-ssh.t pass in MSYS on Windows.
tests: change odd uses of 'if hghave' to #if
tests: convert some 'hghave execbit' to #if

This enables some new tests for running on windows.
tests: glob the remaining 'saved backup bundle to' to prepare for windows
tests: consistently use a HGEDITOR pattern that works with msys on windows

Removing the need for an executable sh script that can be run from a native
windows application enables some tests for running on windows.
test-rename.t: enable for Windows