tests/test-bookmarks-strip.t
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Tue, 02 Jul 2019 12:59:58 -0400
changeset 42621 99ebde4fec99
parent 25744 e78a80f8f51e
permissions -rw-r--r--
commit: improve the files field of changelog for merges Currently, the files list of merge commits repeats all the deletions (either actual deletions, or files that got renamed) that happened between base and p2 of the merge. If p2 is the main branch, the list can easily be much bigger than the change being merged. This results in various problems worth improving: - changelog is bigger than necessary - `hg log directory` lists many unrelated merge commits, and `hg log -v -r commit` frequently fills multiple screens worth of files - it possibly slows down adjustlinkrev, by forcing it to read more manifests, and that function can certainly be a bottleneck - the server side of pulls can waste a lot of time simply opening the filelogs for pointless files (the constant factors for opening even a tiny filelog is apparently pretty bad) So stop listing such files as described in the code. Impacted merge commits and their descendants get a different hash than they would have without this. This doesn't seem problematic, except for convert. The previous commit helped with that in the hg->hg case (but if you do svn->hg twice from scratch, hashes can still change). The rest of the description is numbers. I don't have much to report, because recreating the files list of existing repositories is not easy: - debugupgradeformat and bundle/unbundle don't recreate the list - export/import tends to choke quickly applying patches or on description that contain diffs, - merge commits from the convert extension don't have the right files list for reasons orthogonal to the current commit - replaying the merge with hg update/hg merge/hg revert --all/hg commit can end up failing in hg revert - I wasn't sure that using debugsetparents + debugrebuilddirstate would really build the right thing I measured commit time before and after this change, in a case with no files filtered out, several files filtered out (no difference) and 5k files filtered out (+1% time). Recreating the 100 more recent merges in a private repo, the concatenated uncompressed files lists goes from 1.12MB to 0.52MB. Excluding 3 merges that are not representative, then the size goes from 570k to 15k. I converted part of mozilla-central, and observed file list shrinking quite a bit too, starting at the very first merge, 733641d9feaf, going from 550 files to 10 files (although they have relatively few merges, so they probably wouldn't care). Differential Revision: https://phab.mercurial-scm.org/D6613
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