makefile: don't use system hgrc when running hg in-place
This suppresses the printing of spurious error messages if a global
hgrc refers to extensions that the in-place hg can't access.
setup: print subprocess stderr if there is any
I just spent 1.5 days trying to debug a failing buildbot because
setup.py was silently dropping the errors that were being printed
by in-place hg.
run-tests: open child-parent pipes in binary mode
Python's pickle is a binary format.
amend: force editor only if old message is reused (
issue3698)
This regression was added by
9732473aa24b. It triggered the editor even if
--message or --logfile were provided.
grep: don't search past the end of the searched string
'*' causes the resulting RE to match 0 or more repetitions of the preceding RE:
>>> bool(re.search('.*', ''))
>>> True
This causes an infinite loop because currently we're only checking if there was
a match without looking at where we are in the searched string.
bookmarks: introduce a bmstore to manage bookmark persistence
Bookmarks persistence still showed a fair amount of its legacy as a
monkeypatching extension. This encapsulates all bookmarks
serialization and parsing in a single class, and offers a single
location where other bookmarks storage engines can be substituted
in. As a result, many files no longer import the bookmarks module,
which strikes me as an encapsulation win.
This doesn't do anything to the current bookmark state yet, but I'm
hoping put that in the bmstore class as well.
run-tests: add --time option to log times for each test
--time also prints out the wall-clock time each test takes in descending order.
run-tests: remove resultslock since it serves no useful purpose
Each child process has its own copy of the results dict, so all access to the results dict is serial.