Mercurial > hg
annotate tests/test-check-commit.t @ 51516:e0f92bd98c24 stable
phases: avoid a potentially costly dictionary interation in some case
If we retract for the draft phase, there is not non-public item to be retracted
and we can skip this part. This part is was apparently super costly thanks to
Python.
On mozilla-try-2019-02-18, a perf::unbundle call with a 10 000 changesets
bundle gives give use the following timing.
e57d4b868a3e: 4.6 seconds
ac1c75188440: 102.5 seconds
this-changeset: 30.0 seconds
So we recovered about ⅔ of the regression, the next changeset will give us the
rest back.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 25 Mar 2024 01:50:31 +0100 |
parents | 33817e09c663 |
children |
rev | line source |
---|---|
22067
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
1 #require test-repo |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
2 |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
3 Enable obsolescence to avoid the warning issue when obsmarker are found |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 |
29219
3c9066ed557c
tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents:
28293
diff
changeset
|
5 $ . "$TESTDIR/helpers-testrepo.sh" |
22067
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
6 |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
7 Go back in the hg repo |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
9 $ cd $TESTDIR/.. |
14306a686e71
test-check-commit-hg.t: automatically test all 'draft() and ::.' changesets
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
10 |
37816
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
11 $ REVSET='not public() and ::. and not desc("# no-check-commit")' |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
12 |
37687
8872d46643b6
test-check-commit: don't run hg per commit
Yuya Nishihara <yuya@tcha.org>
parents:
33204
diff
changeset
|
13 $ mkdir "$TESTTMP/p" |
37816
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
14 $ REVS=`testrepohg log -r "$REVSET" -T.` |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
15 $ if [ -n "$REVS" ] ; then |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
16 > testrepohg export --git -o "$TESTTMP/p/%n-%h" -r "$REVSET" |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
17 > for f in `ls "$TESTTMP/p"`; do |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
18 > contrib/check-commit < "$TESTTMP/p/$f" > "$TESTTMP/check-commit.out" |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
19 > if [ $? -ne 0 ]; then |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
20 > node="${f##*-}" |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
21 > echo "Revision $node does not comply with rules" |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
22 > echo '------------------------------------------------------' |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
23 > cat ${TESTTMP}/check-commit.out |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
24 > echo |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
25 > fi |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
26 > done |
33817e09c663
tests: fix test-check-commit.t when all commits are public
Augie Fackler <augie@google.com>
parents:
37687
diff
changeset
|
27 > fi |