Mercurial > hg
annotate tests/helpers-testrepo.sh @ 30706:2e4862646f02
repair: speed up stripping of many roots
repair.strip() expects a set of root revisions to strip. It then
builds the full set of descedants by walking the descandants of
each. It is rare that more than a few roots get passed in, but if that
happens, it will wastefully walk the changelog for each root. So let's
just walk it once.
I noticed this because the narrowhg extension was passing not only
roots, but all the commits to strip. When there were tens of thousands
of commits to strip, this resulted in quadratic behavior with that
extension.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 04 Jan 2017 10:07:12 -0800 |
parents | 3c9066ed557c |
children | 6c113a7dec52 |
rev | line source |
---|---|
29219
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
1 # The test-repo is a live hg repository which may have evolution |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
2 # markers created, e.g. when a ~/.hgrc enabled evolution. |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
3 # |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
4 # Tests are run using a custom HGRCPATH, which do not |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
5 # enable evolution markers by default. |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
6 # |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
7 # If test-repo includes evolution markers, and we do not |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
8 # enable evolution markers, hg will occasionally complain |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
9 # when it notices them, which disrupts tests resulting in |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
10 # sporadic failures. |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
11 # |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
12 # Since we aren't performing any write operations on the |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
13 # test-repo, there's no harm in telling hg that we support |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
14 # evolution markers, which is what the following lines |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
15 # for the hgrc file do: |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
16 cat >> $HGRCPATH << EOF |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
17 [experimental] |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
18 evolution=createmarkers |
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
diff
changeset
|
19 EOF |