Mercurial > hg
annotate tests/test-no-symlinks.t @ 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 | 7a9cbb315d84 |
children | 2d49d2eb1ff2 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
14116
diff
changeset
|
1 #require no-symlink |
5085
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 # The following script was used to create the bundle: |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 # |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
5 # hg init symlinks |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
6 # cd symlinks |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
7 # echo a > a |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 # mkdir d |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
9 # echo b > d/b |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
10 # ln -s a a.lnk |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 # ln -s d/b d/b.lnk |
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
12 # hg ci -Am t |
5089
9b5ae133bd5a
test-no-symlinks: rename .bundle into .hg for consistency.
Patrick Mezard <pmezard@gmail.com>
parents:
5085
diff
changeset
|
13 # hg bundle --base null ../test-no-symlinks.hg |
5085
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
14 |
12917
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
15 Extract a symlink on a platform not supporting them |
5085
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
16 |
12917
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
17 $ hg init t |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
18 $ cd t |
14116
cd3032437064
tests: move test bundles in a bundles/ subdirectory
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12917
diff
changeset
|
19 $ hg pull -q "$TESTDIR/bundles/test-no-symlinks.hg" |
12917
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
20 $ hg update |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
21 4 files updated, 0 files merged, 0 files removed, 0 files unresolved |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
22 $ cat a.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
23 a |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
24 $ cat d/b.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
25 d/b |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
26 |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
27 Copy a symlink and move another |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
28 |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
29 $ hg copy a.lnk d/a2.lnk |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
30 $ hg mv d/b.lnk b2.lnk |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
31 $ hg ci -Am copy |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
32 $ cat d/a2.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
33 a |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
34 $ cat b2.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
35 d/b |
5085
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
36 |
12917
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
37 Bundle and extract again |
5085
dcfd75502b82
Test symlink handling on platform not supporting them
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
38 |
12917
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
39 $ hg bundle --base null ../symlinks.hg |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
40 2 changesets found |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
41 $ cd .. |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
42 $ hg init t2 |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
43 $ cd t2 |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
44 $ hg pull ../symlinks.hg |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
45 pulling from ../symlinks.hg |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
46 requesting all changes |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
47 adding changesets |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
48 adding manifests |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
49 adding file changes |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
50 added 2 changesets with 6 changes to 6 files |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
51 (run 'hg update' to get a working copy) |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
52 $ hg update |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
53 5 files updated, 0 files merged, 0 files removed, 0 files unresolved |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
54 $ cat a.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
55 a |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
56 $ cat d/a2.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
57 a |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
58 $ cat b2.lnk && echo |
a419cb2395d5
tests: unify test-no-symlinks
Patrick Mezard <pmezard@gmail.com>
parents:
5091
diff
changeset
|
59 d/b |