tests/test-locate.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Mon, 23 Dec 2013 15:29:51 -0800
changeset 20207 cd62532c62a1
parent 16912 6ef3107c661e
child 22423 edf07a804ac4
permissions -rw-r--r--
obsolete: order of magnitude speedup in _computebumpedset Reminder: a changeset is said "bumped" if it tries to obsolete a immutable changeset. The previous algorithm for computing bumped changeset was: 1) Get all public changesets 2) Find all they successors 3) Search for stuff that are eligible for being "bumped" (mutable and non obsolete) The entry size of this algorithm is `O(len(public))` which is mostly the same as `O(len(repo))`. Even this this approach mean fewer obsolescence marker are traveled, this is not very scalable. The new algorithm is: 1) For each potential bumped changesets (non obsolete mutable) 2) iterate over precursors 3) if a precursors is public. changeset is bumped We travel more obsolescence marker, but the entry size is much smaller since the amount of potential bumped should remains mostly stable with time `O(1)`. On some confidential gigantic repo this move bumped computation from 15.19s to 0.46s (×33 speedup…). On "smaller" repo (mercurial, cubicweb's review) no significant gain were seen. The additional traversal of obsolescence marker is probably probably counter balance the advantage of it. Other optimisation could be done in the future (eg: sharing precursors cache for divergence detection)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
     1
  $ hg init repo
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
     2
  $ cd repo
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     3
  $ echo 0 > a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     4
  $ echo 0 > b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     5
  $ echo 0 > t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     6
  $ mkdir t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     7
  $ echo 0 > t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     8
  $ echo 0 > t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     9
  $ echo 0 > t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    10
  $ mkdir dir.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    11
  $ echo 0 > dir.h/foo
4234
fe0c0a317c09 make the output of test-locate more readable
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4196
diff changeset
    12
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    13
  $ hg ci -A -m m
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    14
  adding a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    15
  adding b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    16
  adding dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    17
  adding t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    18
  adding t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    19
  adding t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    20
  adding t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    21
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    22
  $ touch nottracked
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    23
12365
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    24
  $ hg locate a
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    25
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    26
12365
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    27
  $ hg locate NONEXISTENT
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    28
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    29
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    30
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    31
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    32
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    33
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    34
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    35
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    36
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    37
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    38
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    39
  $ hg rm a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    40
  $ hg ci -m m
4234
fe0c0a317c09 make the output of test-locate more readable
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4196
diff changeset
    41
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    42
  $ hg locate a
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    43
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    44
  $ hg locate NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    45
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    46
  $ hg locate relpath:NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    47
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    48
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    49
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    50
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    51
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    52
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    53
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    54
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    55
  $ hg locate -r 0 a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    56
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    57
  $ hg locate -r 0 NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    58
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    59
  $ hg locate -r 0 relpath:NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    60
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    61
  $ hg locate -r 0
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    62
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    63
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    64
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    65
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    66
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    67
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    68
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    69
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    70
-I/-X with relative path should work:
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    71
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    72
  $ cd t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    73
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    74
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    75
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    76
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    77
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    78
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    79
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    80
  $ hg locate -I ../t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    81
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    82
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    83
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    84
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12365
diff changeset
    85
Issue294: hg remove --after dir fails when dir.* also exists
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    86
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    87
  $ cd ..
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    88
  $ rm -r t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    89
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    90
  $ hg locate 't/**'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    91
  t/b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    92
  t/e.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    93
  t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    94
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    95
  $ mkdir otherdir
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    96
  $ cd otherdir
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    97
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    98
  $ hg locate b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    99
  ../b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   100
  ../t/b (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   101
  $ hg locate '*.h'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   102
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   103
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   104
  $ hg locate path:t/x
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   105
  ../t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   106
  $ hg locate 're:.*\.h$'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   107
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   108
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   109
  $ hg locate -r 0 b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   110
  ../b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   111
  ../t/b (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   112
  $ hg locate -r 0 '*.h'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   113
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   114
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   115
  $ hg locate -r 0 path:t/x
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   116
  ../t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   117
  $ hg locate -r 0 're:.*\.h$'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   118
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   119
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   120
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
   121
  $ cd ../..