tests/test-revlog-mmapindex.t
author Augie Fackler <augie@google.com>
Sun, 01 Oct 2017 12:16:34 -0400
changeset 34428 0ee9cf8d054a
parent 34296 3c9691728237
child 34446 b0c97e44576f
permissions -rw-r--r--
url: use native strings for header values Differential Revision: https://phab.mercurial-scm.org/D889
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34296
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     1
create verbosemmap.py
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     2
  $ cat << EOF > verbosemmap.py
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     3
  > # extension to make util.mmapread verbose
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     4
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     5
  > from __future__ import absolute_import
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     6
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     7
  > from mercurial import (
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     8
  >     extensions,
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     9
  >     util,
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    10
  > )
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    11
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    12
  > def mmapread(orig, fp):
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    13
  >     print "mmapping %s" % fp.name
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    14
  >     return orig(fp)
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    15
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    16
  > def extsetup(ui):
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    17
  >     extensions.wrapfunction(util, 'mmapread', mmapread)
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    18
  > EOF
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    19
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    20
setting up base repo
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    21
  $ hg init a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    22
  $ cd a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    23
  $ touch a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    24
  $ hg add a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    25
  $ hg commit -qm base
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    26
  $ for i in `$TESTDIR/seq.py 1 100` ; do
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    27
  > echo $i > a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    28
  > hg commit -qm $i
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    29
  > done
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    30
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    31
set up verbosemmap extension
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    32
  $ cat << EOF >> $HGRCPATH
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    33
  > [extensions]
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    34
  > verbosemmap=$TESTTMP/verbosemmap.py
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    35
  > EOF
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    36
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    37
mmap index which is now more than 4k long
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    38
  $ hg log -l 5 -T '{rev}\n' --config experimental.mmapindexthreshold=4k
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    39
  mmapping $TESTTMP/a/.hg/store/00changelog.i (glob)
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    40
  100
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    41
  99
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    42
  98
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    43
  97
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    44
  96
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    45
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    46
do not mmap index which is still less than 32k
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    47
  $ hg log -l 5 -T '{rev}\n' --config experimental.mmapindexthreshold=32k
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    48
  100
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    49
  99
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    50
  98
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    51
  97
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    52
  96
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    53
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    54
  $ cd ..