Mercurial > hg
annotate tests/test-empty-dir.t @ 20713:6a1a4c212d50
revset: improve head revset performance
Previously the head() revset would iterate over every item in the subset and
check if it was a head. Since the subset is often the entire repo, this was
slow on large repos. Now we iterate over each item in the head list and check if
it's in the subset, which results in much less work.
hg log -r 'head()' on a large repo:
Before: 0.95s
After: 0.28s
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 13 Mar 2014 13:47:21 -0700 |
parents | 3b165c127690 |
children |
rev | line source |
---|---|
12158
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
1 $ hg init |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
2 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
3 $ echo 123 > a |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
4 $ hg add a |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
5 $ hg commit -m "first" a |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
6 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
7 $ mkdir sub |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
8 $ echo 321 > sub/b |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
9 $ hg add sub/b |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
10 $ hg commit -m "second" sub/b |
578 | 11 |
12158
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
12 $ cat sub/b |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
13 321 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
14 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
15 $ hg co 0 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
16 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
578 | 17 |
12158
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
18 $ cat sub/b 2>/dev/null || echo "sub/b not present" |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
19 sub/b not present |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
20 |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
21 $ test -d sub || echo "sub not present" |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
22 sub not present |
019cd2826d21
tests: unify test-empty-dir
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
23 |