tests/test-bookmarks-strip.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 09 Apr 2024 02:54:19 +0200
changeset 51586 1cef1412af3e
parent 25744 e78a80f8f51e
permissions -rw-r--r--
phases: rework the logic of _pushdiscoveryphase to bound complexity This rework the various graph traversal in _pushdiscoveryphase to keep the complexity in check. This is done though a couple of things: - first, limiting the space we have to explore, for example, if we are not in publishing push, we don't need to consider remote draft roots that are also draft locally, as there is nothing to be moved there. - avoid unbounded descendant computation, and use the faster "rev between" computation. This provide a massive boost to performance when exchanging with repository with a massive amount of draft, like mozilla-try: ### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog # benchmark.name = hg.command.push # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.explicit-rev = all-out-heads # benchmark.variants.issue6528 = disabled # benchmark.variants.protocol = ssh # benchmark.variants.reuse-external-delta-parent = default ## benchmark.variants.revs = any-1-extra-rev before: 20.346590 seconds after: 11.232059 seconds (-38.15%, -7.48 seconds) ## benchmark.variants.revs = any-100-extra-rev before: 24.752051 seconds after: 15.367412 seconds (-37.91%, -9.38 seconds) After this changes, the push operation is still quite too slow. Some of this can be attributed to general phases slowness (reading all the roots from disk for example) and other know slowness (not using persistent-nodemap, branchmap, tags, etc. We are also working on them, but with this series, phase discovery during push no longer showing up in profile and this is a pretty nice and bit low-hanging fruit out of the way. ### (same case as the above) # benchmark.variants.revs = any-1-extra-rev pre-%ln-change: 44.235070 this-changeset: 11.232059 seconds (-74.61%, -33.00 seconds) # benchmark.variants.revs = any-100-extra-rev pre-%ln-change: 49.234697 this-changeset: 15.367412 seconds (-68.79%, -33.87 seconds) Note that with this change, the `hg push` performance is now much closer to the `hg pull` performance, even it still lagging behind a bit. (and the overall performance are still too slow). ### data-env-vars.name = mozilla-try-2023-03-22-ds2-pnm # benchmark.variants.explicit-rev = all-out-heads # benchmark.variants.issue6528 = disabled # benchmark.variants.protocol = ssh # benchmark.variants.pulled-delta-reuse-policy = default # bin-env-vars.hg.flavor = rust ## benchmark.variants.revs = any-1-extra-rev hg.command.pull: 6.517450 hg.command.push: 11.219888 ## benchmark.variants.revs = any-100-extra-rev hg.command.pull: 10.160991 hg.command.push: 14.251107 ### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog # bin-env-vars.hg.py-re2-module = default # benchmark.variants.explicit-rev = all-out-heads # benchmark.variants.issue6528 = disabled # benchmark.variants.protocol = ssh # benchmark.variants.pulled-delta-reuse-policy = default ## bin-env-vars.hg.flavor = default ## benchmark.variants.revs = any-1-extra-rev hg.command.pull: 8.577772 hg.command.push: 11.232059 ## bin-env-vars.hg.flavor = default ## benchmark.variants.revs = any-100-extra-rev hg.command.pull: 13.152976 hg.command.push: 15.367412 ## bin-env-vars.hg.flavor = rust ## benchmark.variants.revs = any-1-extra-rev hg.command.pull: 8.731982 hg.command.push: 11.178751 ## bin-env-vars.hg.flavor = rust ## benchmark.variants.revs = any-100-extra-rev hg.command.pull: 13.184236 hg.command.push: 15.620843
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
b682997d6944 spelling: deactivates
timeless@mozdev.org
parents: 17264
diff changeset
    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