tests/test-push-r.t
author Matt Mackall <mpm@selenic.com>
Fri, 22 Jan 2016 12:08:20 -0600
branchstable
changeset 27945 4186d359046a
parent 16913 f2719b387380
child 30278 24ea47037186
permissions -rw-r--r--
log: speed up single file log with hidden revs (issue4747) On repos with lots of heads, the filelog() code could spend several minutes decompressing manifests. This change instead tries to efficiently scan the changelog for candidates and decompress as few manifests as possible. This is a regression introduced in 3.3 by the linkrev adjustment code. Prior to that, filelog was nearly instant. For the repo in the bug report, this improves time of a simple log command from ~3 minutes to ~.5 seconds, a 360x speedup. For the main Mercurial repo, a log of commands.py slows down from 1.14s to 1.45s, a 27% slowdown. This is still faster than the file() revset, which takes 2.1 seconds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
     1
  $ hg init test
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
     2
  $ cd test
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 14117
diff changeset
     3
  $ hg unbundle "$TESTDIR/bundles/remote.hg"
14117
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     4
  adding changesets
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     5
  adding manifests
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     6
  adding file changes
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     7
  added 9 changesets with 7 changes to 4 files (+1 heads)
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     8
  (run 'hg heads' to see heads, 'hg merge' to merge)
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
     9
  $ hg up tip
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    10
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    11
  $ cd ..
1781
284fc722c342 add an optional argument to push only the specified revisions (push -r)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    12
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    13
  $ for i in 0 1 2 3 4 5 6 7 8; do
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    14
  >    echo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    15
  >    mkdir test-"$i"
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    16
  >    hg --cwd test-"$i" init
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    17
  >    hg -R test push -r "$i" test-"$i"
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    18
  >    cd test-"$i"
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    19
  >    hg verify
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    20
  >    cd ..
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    21
  > done
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    22
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    23
  pushing to test-0
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    24
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    25
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    26
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    27
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    28
  added 1 changesets with 1 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    29
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    30
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    31
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    32
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    33
  1 files, 1 changesets, 1 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    34
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    35
  pushing to test-1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    36
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    37
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    38
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    39
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    40
  added 2 changesets with 2 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    41
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    42
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    43
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    44
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    45
  1 files, 2 changesets, 2 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    46
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    47
  pushing to test-2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    48
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    49
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    50
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    51
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    52
  added 3 changesets with 3 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    53
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    54
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    55
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    56
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    57
  1 files, 3 changesets, 3 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    58
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    59
  pushing to test-3
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    60
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    61
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    62
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    63
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    64
  added 4 changesets with 4 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    65
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    66
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    67
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    68
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    69
  1 files, 4 changesets, 4 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    70
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    71
  pushing to test-4
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    72
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    73
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    74
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    75
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    76
  added 2 changesets with 2 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    77
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    78
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    79
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    80
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    81
  1 files, 2 changesets, 2 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    82
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    83
  pushing to test-5
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    84
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    85
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    86
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    87
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    88
  added 3 changesets with 3 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    89
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    90
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    91
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    92
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    93
  1 files, 3 changesets, 3 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    94
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    95
  pushing to test-6
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    96
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    97
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    98
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    99
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   100
  added 4 changesets with 5 changes to 2 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   101
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   102
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   103
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   104
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   105
  2 files, 4 changesets, 5 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   106
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   107
  pushing to test-7
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   108
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   109
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   110
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   111
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   112
  added 5 changesets with 6 changes to 3 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   113
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   114
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   115
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   116
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   117
  3 files, 5 changesets, 6 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   118
  
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   119
  pushing to test-8
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   120
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   121
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   122
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   123
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   124
  added 5 changesets with 5 changes to 2 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   125
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   126
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   127
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   128
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   129
  2 files, 5 changesets, 5 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   130
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   131
  $ cd test-8
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   132
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   133
  $ hg pull ../test-7
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   134
  pulling from ../test-7
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   135
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   136
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   137
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   138
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   139
  added 4 changesets with 2 changes to 3 files (+1 heads)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   140
  (run 'hg heads' to see heads, 'hg merge' to merge)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   141
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   142
  $ hg verify
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   143
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   144
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   145
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   146
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   147
  4 files, 9 changesets, 7 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   148
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   149
  $ cd ..