tests/test-revlog-mmapindex.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 13 Feb 2023 22:53:54 +0100
changeset 50054 44528f4a4d53
parent 48967 42d2b31cee0b
child 51202 dcaa2df1f688
permissions -rw-r--r--
dirstate: explicitly write the dirstate after `keyword` "overwrite" I am working on making the dirstate write patterns more predictable. This patch is part of a small series of similar patches that adds a explicit dirstate write in a handful of location where the dirstate is updated "a bit in a strange way". With this explicit write, we are no longer relying on implicite write of the dirstate on `wlock` release. This make the world a better place.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34303
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
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     6
  > from mercurial import (
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     7
  >     extensions,
35411
6ebe899b6551 py3: pass bytes from extension to ui.write() in test-revlog-mmapindex.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35400
diff changeset
     8
  >     pycompat,
34303
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
  > 
34447
b0c97e44576f test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents: 34303
diff changeset
    12
  > def extsetup(ui):
b0c97e44576f test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents: 34303
diff changeset
    13
  >     def mmapread(orig, fp):
35411
6ebe899b6551 py3: pass bytes from extension to ui.write() in test-revlog-mmapindex.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35400
diff changeset
    14
  >         ui.write(b"mmapping %s\n" % pycompat.bytestr(fp.name))
34447
b0c97e44576f test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents: 34303
diff changeset
    15
  >         ui.flush()
b0c97e44576f test-revlog-mmapindex: make it compatible with chg
Jun Wu <quark@fb.com>
parents: 34303
diff changeset
    16
  >         return orig(fp)
34303
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    17
  > 
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    18
  >     extensions.wrapfunction(util, 'mmapread', mmapread)
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    19
  > EOF
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    20
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    21
setting up base repo
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    22
  $ hg init a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    23
  $ cd a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    24
  $ touch a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    25
  $ hg add a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    26
  $ hg commit -qm base
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    27
  $ 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
    28
  > echo $i > a
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    29
  > hg commit -qm $i
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    30
  > done
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    31
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    32
set up verbosemmap extension
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    33
  $ cat << EOF >> $HGRCPATH
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    34
  > [extensions]
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    35
  > verbosemmap=$TESTTMP/verbosemmap.py
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    36
  > EOF
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    37
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    38
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
    39
  $ hg log -l 5 -T '{rev}\n' --config experimental.mmapindexthreshold=4k
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34447
diff changeset
    40
  mmapping $TESTTMP/a/.hg/store/00changelog.i
34303
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    41
  100
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    42
  99
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    43
  98
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    44
  97
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    45
  96
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    46
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    47
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
    48
  $ 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
    49
  100
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    50
  99
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    51
  98
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    52
  97
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    53
  96
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    54
3c9691728237 revlog: add option to mmap revlog index
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    55
  $ cd ..