Mercurial > hg
view tests/test-check-code-hg.t @ 20275:2123d27ff75d
backout: avoid update on simple case.
Before the changeset the backout process was:
1) go to <target>
2) revert to <target> parent
3) update back to changeset we came from
The two update steps can takes a very long time to move back and forth unrelated
file change between <target> and current working directory.
The new process is just merging current working directory with the parent of
<target> using <target> as ancestor. This give the very same result but skip
the two updates. On big repo with a lot of files and changes that save a lots of
time (x20 for one week window).
The "merge" version (hg backout --merge) is still done with upgrades. We could
imagine using in memory commit to speed it up but this is another fish.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 08 Jan 2014 14:53:46 -0800 |
parents | 16b5f498f49c |
children | c35c027f5f43 |
line wrap: on
line source
$ check_code="$TESTDIR"/../contrib/check-code.py $ cd "$TESTDIR"/.. $ if hg identify -q > /dev/null 2>&1; then : > else > echo "skipped: not a Mercurial working dir" >&2 > exit 80 > fi Prepare check for Python files without py extension $ cp \ > hg \ > hgweb.cgi \ > contrib/convert-repo \ > contrib/dumprevlog \ > contrib/hgweb.fcgi \ > contrib/hgweb.wsgi \ > contrib/simplemerge \ > contrib/undumprevlog \ > i18n/hggettext \ > i18n/posplit \ > tests/hghave \ > tests/dummyssh \ > "$TESTTMP"/ $ for f in "$TESTTMP"/*; do mv "$f" "$f.py"; done New errors are not allowed. Warnings are strongly discouraged. (The writing "no-che?k-code" is for not skipping this file when checking.) $ { hg manifest 2>/dev/null; ls "$TESTTMP"/*.py | sed 's-\\-/-g'; } | > xargs "$check_code" --warnings --per-file=0 || false Skipping hgext/zeroconf/Zeroconf.py it has no-che?k-code (glob) Skipping i18n/polib.py it has no-che?k-code (glob) Skipping mercurial/httpclient/__init__.py it has no-che?k-code (glob) Skipping mercurial/httpclient/_readers.py it has no-che?k-code (glob) Skipping mercurial/httpclient/socketutil.py it has no-che?k-code (glob)