tests/test-histedit-no-backup.t
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Tue, 02 Jul 2019 12:59:58 -0400
changeset 42621 99ebde4fec99
parent 42584 db5560c07a28
child 45845 21733e8c924f
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:
42584
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     1
#testcases abortcommand abortflag
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     2
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     3
#if abortflag
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     4
  $ cat >> $HGRCPATH <<EOF
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     5
  > [alias]
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     6
  > abort = histedit --abort
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     7
  > EOF
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     8
#endif
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
     9
38549
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    10
  $ . "$TESTDIR/histedit-helpers.sh"
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    11
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    12
Enable extension used by this test
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    13
  $ cat >>$HGRCPATH <<EOF
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    14
  > [extensions]
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    15
  > histedit=
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    16
  > EOF
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    17
41206
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    18
=================================
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    19
Test backup-bundle config option|
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    20
=================================
38549
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    21
Repo setup:
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    22
  $ hg init foo
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    23
  $ cd foo
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    24
  $ echo first>file
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    25
  $ hg ci -qAm one
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    26
  $ echo second>>file
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    27
  $ hg ci -m two
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    28
  $ echo third>>file
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    29
  $ hg ci -m three
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    30
  $ echo forth>>file
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    31
  $ hg ci -m four
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    32
  $ hg log -G --style compact
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    33
  @  3[tip]   7d5187087c79   1970-01-01 00:00 +0000   test
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    34
  |    four
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    35
  |
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    36
  o  2   80d23dfa866d   1970-01-01 00:00 +0000   test
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    37
  |    three
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    38
  |
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    39
  o  1   6153eb23e623   1970-01-01 00:00 +0000   test
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    40
  |    two
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    41
  |
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    42
  o  0   36b4bdd91f5b   1970-01-01 00:00 +0000   test
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    43
       one
7b57b1ed5c0f histedit: add --no-backup option (issue5825)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    44
  
41206
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    45
Test when `backup-bundle` config option is enabled:
38733
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    46
  $ hg histedit -r '36b4bdd91f5b' --commands - << EOF
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    47
  > pick 36b4bdd91f5b 0 one
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    48
  > pick 6153eb23e623 1 two
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    49
  > roll 80d23dfa866d 2 three
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    50
  > edit 7d5187087c79 3 four
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    51
  > EOF
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    52
  merging file
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    53
  Editing (7d5187087c79), you may commit or record as needed now.
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    54
  (hg histedit --continue to resume)
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    55
  [1]
42584
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
    56
  $ hg abort
38733
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    57
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    58
  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/1d8f701c7b35-cf7be322-backup.hg
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    59
  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/5c0056670bce-b54b65d0-backup.hg
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    60
41206
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    61
Test when `backup-bundle` config option is not enabled
38733
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    62
Enable config option:
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    63
  $ cat >>$HGRCPATH <<EOF
41206
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    64
  > [rewrite]
6acbe86c6490 repair: move ui.history-editing-backup to [rewrite] section
Yuya Nishihara <yuya@tcha.org>
parents: 38738
diff changeset
    65
  > backup-bundle = False
38733
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    66
  > EOF
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    67
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    68
  $ hg histedit -r '36b4bdd91f5b' --commands - << EOF
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    69
  > pick 36b4bdd91f5b 0 one
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    70
  > pick 6153eb23e623 1 two
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    71
  > roll 80d23dfa866d 2 three
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    72
  > edit 7d5187087c79 3 four
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    73
  > EOF
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    74
  merging file
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    75
  Editing (7d5187087c79), you may commit or record as needed now.
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    76
  (hg histedit --continue to resume)
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    77
  [1]
42584
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
    78
db5560c07a28 abort: added support for histedit
Taapas Agrawal <taapas2897@gmail.com>
parents: 41206
diff changeset
    79
  $ hg abort
38733
c2586a6e5884 histedit: add history-editing-backup config option
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 38549
diff changeset
    80
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved