Mercurial > hg
annotate tests/test-bookmarks-strip.t @ 42485:4c39c99d9492
copies: do full filtering at end of _changesetforwardcopies()
As mentioned earlier, pathcopies() is very slow when copies are stored
in the changeset. Most of the cost comes from calling _chain() for
every changeset, which is slow because it needs to read manifests. It
needs to read manifests to be able to filter out copies that are were
created in one commit and then deleted. (It also filters out copies
that were created from a file that didn't exist in the starting
revision, but that's a fixed revision across calls to _chain(), so
it's much cheaper.)
This patch changes from _chainandfilter() to just _chain() in the main
loop in _changesetforwardcopies(). It instead removes copies that have
subsequently been removed by using ctx.filesremoved(). We thus rely on
that to be fast.
It timed this command in mozilla-unified:
hg debugpathcopies FIREFOX_59_0b3_BUILD2 FIREFOX_BETA_59_END
It took 18s before and 1.1s after. It's still faster when copy
information is stored in filelogs: 0.70s. It also still gets slow when
there are merge commits involved, because we read manifests there
too. We'll deal with that later.
Differential Revision: https://phab.mercurial-scm.org/D6419
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 18 Apr 2019 00:40:53 -0700 |
parents | e78a80f8f51e |
children |
rev | line source |
---|---|
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
1 $ echo "[extensions]" >> $HGRCPATH |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
2 $ echo "mq=" >> $HGRCPATH |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
3 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
4 $ hg init |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
5 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
6 $ echo qqq>qqq.txt |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
7 |
13307
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
8 rollback dry run without rollback information |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
9 |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
10 $ hg rollback |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
11 no rollback information available |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
12 [1] |
7f2b8aac7bdc
bookmarks: respect rollbacks dryrun parameter
David Soria Parra <dsp@php.net>
parents:
12640
diff
changeset
|
13 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
14 add file |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
15 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
16 $ hg add |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
17 adding qqq.txt |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
18 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
19 commit first revision |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
20 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
21 $ hg ci -m 1 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
22 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
23 set bookmark |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
24 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
25 $ hg book test |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
26 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
27 $ echo www>>qqq.txt |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
28 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
29 commit second revision |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
30 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
31 $ hg ci -m 2 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
32 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
33 set bookmark |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
34 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
35 $ hg book test2 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
36 |
17497 | 37 update to -2 (deactivates the active bookmark) |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
38 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
39 $ hg update -r -2 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
40 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
21404
ca275f7ec576
update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents:
17497
diff
changeset
|
41 (leaving bookmark test2) |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
42 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
43 $ echo eee>>qqq.txt |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
44 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
45 commit new head |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
46 |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
47 $ hg ci -m 3 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
48 created new head |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
49 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
50 bookmarks updated? |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
51 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
52 $ hg book |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
53 test 1:25e1ee7a0081 |
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
11907
diff
changeset
|
54 test2 1:25e1ee7a0081 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
55 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
56 strip to revision 1 |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
57 |
11907
863567a1364f
tests: use regular expressions instead of helpers
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11864
diff
changeset
|
58 $ hg strip 1 |
12640
6cc4b14fb76b
tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents:
12394
diff
changeset
|
59 saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob) |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
60 |
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
61 list bookmarks |
7316
9737041646bc
bookmarks: Use dirstate to determine the current node in addchangegroup
David Soria Parra <dsp@php.net>
parents:
diff
changeset
|
62 |
11864
b2a06ef53b7b
tests: unify test-bookmarks-strip
Martin Geisler <mg@lazybytes.net>
parents:
11208
diff
changeset
|
63 $ hg book |
17264
ec7b9bec19c9
strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents:
16191
diff
changeset
|
64 test 0:5c9ad3787638 |
ec7b9bec19c9
strip: move bookmarks to nearest ancestor rather than '.'
Augie Fackler <raf@durin42.com>
parents:
16191
diff
changeset
|
65 test2 0:5c9ad3787638 |