tests/test-transaction-rollback-on-revlog-split.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 07 Mar 2024 10:55:22 +0100
changeset 51531 f85f23f1479b
parent 50819 3ccef7902070
permissions -rw-r--r--
branchcache: skip entries that are topological heads in the on disk file In the majority of cases, topological heads are also branch heads. We have efficient way to get the topological heads and efficient way to retrieve their branch information. So there is little value in putting them in the branch cache file explicitly. On the contrary, writing them explicitly tend to create very large cache file that are inefficient to read and update. So the branch cache v3 format is no longer including them. This changeset focus on the format aspect and have no focus on the performance aspect. We will cover that later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     1
Test correctness of revlog inline -> non-inline transition
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     2
----------------------------------------------------------
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
     3
50452
a445194f0a4d backup: fix issue when the backup end up in a different directory
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50450
diff changeset
     4
We test various file length and naming pattern as this created issue in the
a445194f0a4d backup: fix issue when the backup end up in a different directory
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50450
diff changeset
     5
past.
a445194f0a4d backup: fix issue when the backup end up in a different directory
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50450
diff changeset
     6
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
     7
Helper extension to intercept renames and kill process
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
     8
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
     9
  $ cat > $TESTTMP/intercept_before_rename.py << EOF
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    10
  > import os
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    11
  > import signal
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    12
  > from mercurial import extensions, util
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    13
  > 
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    14
  > def extsetup(ui):
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    15
  >     def rename(orig, src, dest, *args, **kwargs):
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    16
  >         path = util.normpath(dest)
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    17
  >         if path.endswith(b'data/file.i'):
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    18
  >             os.kill(os.getpid(), signal.SIGKILL)
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    19
  >         return orig(src, dest, *args, **kwargs)
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    20
  >     extensions.wrapfunction(util, 'rename', rename)
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    21
  > EOF
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
    22
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    23
  $ cat > $TESTTMP/intercept_after_rename.py << EOF
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    24
  > import os
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    25
  > import signal
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    26
  > from mercurial import extensions, util
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    27
  > 
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    28
  > def extsetup(ui):
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    29
  >     def close(orig, *args, **kwargs):
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    30
  >         path = util.normpath(args[0]._atomictempfile__name)
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    31
  >         r = orig(*args, **kwargs)
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    32
  >         if path.endswith(b'/.hg/store/data/file.i'):
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    33
  >             os.kill(os.getpid(), signal.SIGKILL)
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    34
  >         return r
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    35
  >     extensions.wrapfunction(util.atomictempfile, 'close', close)
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    36
  > def extsetup(ui):
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    37
  >     def rename(orig, src, dest, *args, **kwargs):
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    38
  >         path = util.normpath(dest)
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    39
  >         r = orig(src, dest, *args, **kwargs)
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    40
  >         if path.endswith(b'data/file.i'):
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    41
  >             os.kill(os.getpid(), signal.SIGKILL)
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    42
  >         return r
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
    43
  >     extensions.wrapfunction(util, 'rename', rename)
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    44
  > EOF
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
    45
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    46
  $ cat > $TESTTMP/killme.py << EOF
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    47
  > import os
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    48
  > import signal
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    49
  > 
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    50
  > def killme(ui, repo, hooktype, **kwargs):
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    51
  >     os.kill(os.getpid(), signal.SIGKILL)
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    52
  > EOF
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    53
50343
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    54
  $ cat > $TESTTMP/reader_wait_split.py << EOF
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    55
  > import os
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    56
  > import signal
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    57
  > from mercurial import extensions, revlog, testing
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    58
  > def _wait_post_load(orig, self, *args, **kwargs):
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    59
  >     wait = b'data/file' in self.radix
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    60
  >     if wait:
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    61
  >         testing.wait_file(b"$TESTTMP/writer-revlog-split")
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    62
  >     r = orig(self, *args, **kwargs)
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    63
  >     if wait:
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    64
  >         testing.write_file(b"$TESTTMP/reader-index-read")
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    65
  >         testing.wait_file(b"$TESTTMP/writer-revlog-unsplit")
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    66
  >     return r
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    67
  > 
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    68
  > def extsetup(ui):
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    69
  >     extensions.wrapfunction(revlog.revlog, '_loadindex', _wait_post_load)
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    70
  > EOF
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
    71
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    72
setup a repository for tests
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    73
----------------------------
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    74
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    75
  $ cat >> $HGRCPATH << EOF
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    76
  > [format]
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    77
  > revlog-compression=none
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    78
  > EOF
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    79
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    80
  $ hg init troffset-computation
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    81
  $ cd troffset-computation
50450
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    82
  $ files="
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    83
  > file
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    84
  > Directory_With,Special%Char/Complex_File.babar
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    85
  > foo/bar/babar_celeste/foo
50452
a445194f0a4d backup: fix issue when the backup end up in a different directory
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50450
diff changeset
    86
  > 1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/f
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
    87
  > some_dir/sub_dir/foo_bar
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
    88
  > some_dir/sub_dir/foo_bar.i.s/tutu
50450
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    89
  > "
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    90
  $ for f in $files; do
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    91
  >     mkdir -p `dirname $f`
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    92
  > done
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    93
  $ for f in $files; do
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    94
  >     printf '%20d' '1' > $f
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    95
  > done
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
    96
  $ hg commit -Aqma
50450
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    97
  $ for f in $files; do
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    98
  >     printf '%1024d' '1' > $f
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
    99
  > done
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   100
  $ hg commit -Aqmb
50450
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   101
  $ for f in $files; do
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   102
  >     printf '%20d' '1' > $f
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   103
  > done
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   104
  $ hg commit -Aqmc
50450
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   105
  $ for f in $files; do
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   106
  >     dd if=/dev/zero of=$f bs=1k count=128 > /dev/null 2>&1
f930af431193 revlog: test more complex file pattern for revlog split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50381
diff changeset
   107
  > done
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   108
  $ hg commit -AqmD --traceback
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   109
  $ for f in $files; do
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   110
  >     dd if=/dev/zero of=$f bs=1k count=132 > /dev/null 2>&1
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   111
  > done
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   112
  $ hg commit -AqmD --traceback
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   113
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   114
Reference size:
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   115
  $ f -s file
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   116
  file: size=135168
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   117
  $ f -s .hg/store/data*/file*
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   118
  .hg/store/data/file.d: size=267307
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   119
  .hg/store/data/file.i: size=320
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   120
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   121
  $ cd ..
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   122
50686
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   123
Test a succesful pull
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   124
=====================
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   125
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   126
Make sure everything goes though as expect if we don't do any crash
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   127
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   128
  $ hg clone --quiet --rev 1 troffset-computation troffset-success
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   129
  $ cd troffset-success
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   130
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   131
Reference size:
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   132
  $ f -s file
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   133
  file: size=1024
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   134
  $ f -s .hg/store/data/file*
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   135
  .hg/store/data/file.i: size=1174
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   136
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   137
  $ hg pull ../troffset-computation
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   138
  pulling from ../troffset-computation
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   139
  searching for changes
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   140
  adding changesets
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   141
  adding manifests
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   142
  adding file changes
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   143
  added 3 changesets with 18 changes to 6 files
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   144
  new changesets c99a94cae9b1:64874a3b0160
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   145
  (run 'hg update' to get a working copy)
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   146
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   147
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   148
The inline revlog has been replaced
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   149
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   150
  $ f -s .hg/store/data/file*
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   151
  .hg/store/data/file.d: size=267307
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   152
  .hg/store/data/file.i: size=320
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   153
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   154
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   155
  $ hg verify -q
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   156
  $ cd ..
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   157
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   158
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   159
Test a hard crash after the file was split but before the transaction was committed
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   160
===================================================================================
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   161
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   162
Test offset computation to correctly factor in the index entries themselves.
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   163
Also test that the new data size has the correct size if the transaction is aborted
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   164
after the index has been replaced.
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   165
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   166
Test repo has commits a, b, c, D, where D is large (grows the revlog enough that it
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   167
transitions to non-inline storage). The clone initially has changes a, b
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   168
and will transition to non-inline storage when adding c, D.
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   169
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   170
If the transaction adding c, D is rolled back, then we don't undo the revlog split,
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   171
but truncate the index and the data to remove both c and D.
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   172
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   173
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   174
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-copy
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   175
  $ cd troffset-computation-copy
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   176
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   177
Reference size:
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   178
  $ f -s file
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   179
  file: size=1024
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   180
  $ f -s .hg/store/data*/file*
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   181
  .hg/store/data/file.i: size=1174
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   182
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   183
  $ cat > .hg/hgrc <<EOF
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   184
  > [hooks]
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   185
  > pretxnchangegroup = python:$TESTTMP/killme.py:killme
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   186
  > EOF
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   187
#if chg
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   188
  $ hg pull ../troffset-computation
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   189
  pulling from ../troffset-computation
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   190
  [255]
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   191
#else
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   192
  $ hg pull ../troffset-computation
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   193
  pulling from ../troffset-computation
50381
2231f7d8a602 test-tx-rollback: more lenient glob for kill status (issue6807)
pacien <pacien.trangirard@pacien.net>
parents: 50346
diff changeset
   194
  *Killed* (glob)
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   195
  [137]
47284
21ed126bab53 revlog: fix index computation during inline->non-inline transition
Joerg Sonnenberger <joerg@bec.de>
parents:
diff changeset
   196
#endif
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   197
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   198
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   199
The inline revlog still exist, but a split version exist next to it
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   200
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   201
  $ cat .hg/store/journal | tr '\0' ' ' | grep '\.s'
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   202
  data/some_dir/sub_dir/foo_bar.i.s/tutu.i 1174
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   203
  data/some_dir/sub_dir/foo_bar.i.s/tutu.d 0
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   204
  $ f -s .hg/store/data*/file*
50814
4a3a9d961561 revlog: fix the naming scheme use by split temporary file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50813
diff changeset
   205
  .hg/store/data-s/file.i: size=320
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   206
  .hg/store/data/file.d: size=267307
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   207
  .hg/store/data/file.i: size=132395
50813
4ee64ff1d49f revlog: show that temporary split file use broken name scheme
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50812
diff changeset
   208
  $ f -s .hg/store/data*/foo*/bar*/babar__celeste*/foo*
50814
4a3a9d961561 revlog: fix the naming scheme use by split temporary file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50813
diff changeset
   209
  .hg/store/data-s/foo/bar/babar__celeste/foo.i: size=320
50813
4ee64ff1d49f revlog: show that temporary split file use broken name scheme
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50812
diff changeset
   210
  .hg/store/data/foo/bar/babar__celeste/foo.d: size=267307
4ee64ff1d49f revlog: show that temporary split file use broken name scheme
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50812
diff changeset
   211
  .hg/store/data/foo/bar/babar__celeste/foo.i: size=132395
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   212
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   213
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   214
The first file.i entry should match the "Reference size" above.
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   215
The first file.d entry is the temporary record during the split,
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   216
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   217
A "temporary file" entry exist for the split index.
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   218
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   219
  $ cat .hg/store/journal | tr -s '\000' ' ' | grep data/file
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   220
  data/file.i 1174
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   221
  data/file.d 0
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   222
  $ cat .hg/store/journal.backupfiles | tr -s '\000' ' ' | tr -s '\00' ' '| grep 'data.*/file'
50686
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   223
   data/file.i data/journal.backup.file.i.bck 0
50814
4a3a9d961561 revlog: fix the naming scheme use by split temporary file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50813
diff changeset
   224
   data-s/file.i 0
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   225
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   226
recover is rolling the split back, the fncache is still valid
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   227
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   228
  $ hg recover
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   229
  rolling back interrupted transaction
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   230
  (verify step skipped, run `hg verify` to check your repository content)
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   231
  $ f -s .hg/store/data*/file*
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   232
  .hg/store/data/file.i: size=1174
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   233
  $ hg tip
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   234
  changeset:   1:64b04c8dc267
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   235
  tag:         tip
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   236
  user:        test
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   237
  date:        Thu Jan 01 00:00:00 1970 +0000
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   238
  summary:     b
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   239
  
47874
308e843f24b1 test: reduce noise, so the important bits stand out
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 47561
diff changeset
   240
  $ hg verify -q
47875
0fb328bb2459 debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 47874
diff changeset
   241
  $ hg debugrebuildfncache --only-data
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   242
  fncache already up to date
47875
0fb328bb2459 debugrebuildfncache: add a cheaper option to rebuild the fncache
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 47874
diff changeset
   243
  $ hg verify -q
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   244
  $ cd ..
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   245
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   246
Test a hard crash right before the index is move into place
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   247
===========================================================
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   248
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   249
Now retry the procedure but intercept the rename of the index and check that
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   250
the journal does not contain the new index size. This demonstrates the edge case
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   251
where the data file is left as garbage.
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   252
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   253
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-copy2
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   254
  $ cd troffset-computation-copy2
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   255
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   256
Reference size:
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   257
  $ f -s file
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   258
  file: size=1024
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   259
  $ f -s .hg/store/data*/file*
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   260
  .hg/store/data/file.i: size=1174
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   261
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   262
  $ cat > .hg/hgrc <<EOF
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   263
  > [extensions]
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   264
  > intercept_rename = $TESTTMP/intercept_before_rename.py
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   265
  > EOF
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   266
#if chg
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   267
  $ hg pull ../troffset-computation
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   268
  pulling from ../troffset-computation
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   269
  searching for changes
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   270
  adding changesets
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   271
  adding manifests
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   272
  adding file changes
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   273
  [255]
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   274
#else
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   275
  $ hg pull ../troffset-computation
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   276
  pulling from ../troffset-computation
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   277
  searching for changes
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   278
  adding changesets
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   279
  adding manifests
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   280
  adding file changes
50381
2231f7d8a602 test-tx-rollback: more lenient glob for kill status (issue6807)
pacien <pacien.trangirard@pacien.net>
parents: 50346
diff changeset
   281
  *Killed* (glob)
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   282
  [137]
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   283
#endif
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   284
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   285
The inline revlog still exist, but a split version exist next to it
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   286
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   287
  $ f -s .hg/store/data*/file*
50814
4a3a9d961561 revlog: fix the naming scheme use by split temporary file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50813
diff changeset
   288
  .hg/store/data-s/file.i: size=320
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   289
  .hg/store/data/file.d: size=267307
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   290
  .hg/store/data/file.i: size=132395
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   291
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   292
  $ cat .hg/store/journal | tr -s '\000' ' ' | grep 'data.*/file'
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   293
  data/file.i 1174
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   294
  data/file.d 0
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   295
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   296
recover is rolling the split back, the fncache is still valid
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   297
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   298
  $ hg recover
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   299
  rolling back interrupted transaction
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   300
  (verify step skipped, run `hg verify` to check your repository content)
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   301
  $ f -s .hg/store/data*/file*
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   302
  .hg/store/data/file.i: size=1174
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   303
  $ hg tip
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   304
  changeset:   1:64b04c8dc267
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   305
  tag:         tip
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   306
  user:        test
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   307
  date:        Thu Jan 01 00:00:00 1970 +0000
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   308
  summary:     b
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   309
  
47874
308e843f24b1 test: reduce noise, so the important bits stand out
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 47561
diff changeset
   310
  $ hg verify -q
47285
46b828b85eb7 revlog: update data file record before index rename
Joerg Sonnenberger <joerg@bec.de>
parents: 47284
diff changeset
   311
  $ cd ..
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   312
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   313
Test a hard crash right after the index is move into place
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   314
===========================================================
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   315
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   316
Now retry the procedure but intercept the rename of the index.
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   317
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   318
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-crash-after-rename
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   319
  $ cd troffset-computation-crash-after-rename
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   320
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   321
Reference size:
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   322
  $ f -s file
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   323
  file: size=1024
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   324
  $ f -s .hg/store/data*/file*
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   325
  .hg/store/data/file.i: size=1174
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   326
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   327
  $ cat > .hg/hgrc <<EOF
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   328
  > [extensions]
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   329
  > intercept_rename = $TESTTMP/intercept_after_rename.py
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   330
  > EOF
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   331
#if chg
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   332
  $ hg pull ../troffset-computation
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   333
  pulling from ../troffset-computation
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   334
  searching for changes
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   335
  adding changesets
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   336
  adding manifests
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   337
  adding file changes
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   338
  [255]
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   339
#else
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   340
  $ hg pull ../troffset-computation
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   341
  pulling from ../troffset-computation
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   342
  searching for changes
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   343
  adding changesets
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   344
  adding manifests
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   345
  adding file changes
50381
2231f7d8a602 test-tx-rollback: more lenient glob for kill status (issue6807)
pacien <pacien.trangirard@pacien.net>
parents: 50346
diff changeset
   346
  *Killed* (glob)
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   347
  [137]
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   348
#endif
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   349
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   350
The inline revlog was over written on disk
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   351
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   352
  $ f -s .hg/store/data*/file*
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   353
  .hg/store/data/file.d: size=267307
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   354
  .hg/store/data/file.i: size=320
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   355
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   356
  $ cat .hg/store/journal | tr -s '\000' ' ' | grep 'data.*/file'
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   357
  data/file.i 1174
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   358
  data/file.d 0
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   359
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   360
recover is rolling the split back, the fncache is still valid
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   361
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   362
  $ hg recover
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   363
  rolling back interrupted transaction
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   364
  (verify step skipped, run `hg verify` to check your repository content)
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   365
  $ f -s .hg/store/data*/file*
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   366
  .hg/store/data/file.i: size=1174
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   367
  $ hg tip
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   368
  changeset:   1:64b04c8dc267
50342
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   369
  tag:         tip
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   370
  user:        test
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   371
  date:        Thu Jan 01 00:00:00 1970 +0000
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   372
  summary:     b
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   373
  
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   374
  $ hg verify -q
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   375
  $ cd ..
c185545a4c69 revlog: add a failing variant of the the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50341
diff changeset
   376
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   377
Have the transaction rollback itself without any hard crash
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   378
===========================================================
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   379
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   380
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   381
Repeat the original test but let hg rollback the transaction.
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   382
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   383
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-copy-rb
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   384
  $ cd troffset-computation-copy-rb
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   385
  $ cat > .hg/hgrc <<EOF
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   386
  > [hooks]
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   387
  > pretxnchangegroup = false
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   388
  > EOF
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   389
  $ hg pull ../troffset-computation
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   390
  pulling from ../troffset-computation
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   391
  searching for changes
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   392
  adding changesets
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   393
  adding manifests
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   394
  adding file changes
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   395
  transaction abort!
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   396
  rollback completed
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   397
  abort: pretxnchangegroup hook exited with status 1
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   398
  [40]
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   399
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   400
The split was rollback
50341
e2ba2234bf1c revlog: update the split + transaction test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48571
diff changeset
   401
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   402
  $ f -s .hg/store/data*/file*
50346
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   403
  .hg/store/data/file.i: size=1174
87f0155d68aa revlog: improve the robustness of the splitting process
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50344
diff changeset
   404
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   405
  $ hg tip
50662
12f13b13f414 revlog: avoid possible collision between directory and temporary index
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50642
diff changeset
   406
  changeset:   1:64b04c8dc267
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   407
  tag:         tip
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   408
  user:        test
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   409
  date:        Thu Jan 01 00:00:00 1970 +0000
48570
f38ae2d7390e revlog: demonstrate a bug where transaction can be aborted partially
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47875
diff changeset
   410
  summary:     b
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   411
  
47874
308e843f24b1 test: reduce noise, so the important bits stand out
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 47561
diff changeset
   412
  $ hg verify -q
50811
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   413
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   414
  $ cat > .hg/hgrc <<EOF
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   415
  > [hooks]
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   416
  > EOF
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   417
  $ hg pull ../troffset-computation
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   418
  pulling from ../troffset-computation
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   419
  searching for changes
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   420
  adding changesets
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   421
  adding manifests
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   422
  adding file changes
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   423
  added 3 changesets with 18 changes to 6 files
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   424
  new changesets c99a94cae9b1:64874a3b0160
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   425
  (run 'hg update' to get a working copy)
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   426
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   427
  $ f -s .hg/store/data*/file*
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   428
  .hg/store/data/file.d: size=267307
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   429
  .hg/store/data/file.i: size=320
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   430
  $ hg verify -q
5d77a6f37fe1 fncache: add a test demonstrating fncache corruption
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50686
diff changeset
   431
47286
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   432
  $ cd ..
18415fc918a1 recover: only apply last journal record per file (issue6423)
Joerg Sonnenberger <joerg@bec.de>
parents: 47285
diff changeset
   433
50343
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   434
Read race
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   435
=========
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   436
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   437
We check that a client that started reading a revlog (its index) after the
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   438
split and end reading (the data) after the rollback should be fine
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   439
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   440
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-race
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   441
  $ cd troffset-computation-race
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   442
  $ cat > .hg/hgrc <<EOF
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   443
  > [hooks]
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   444
  > pretxnchangegroup=$RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/reader-index-read $TESTTMP/writer-revlog-split
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   445
  > pretxnclose = false
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   446
  > EOF
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   447
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   448
start a reader
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   449
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   450
  $ hg cat --rev 0 file \
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   451
  > --config "extensions.wait_read=$TESTTMP/reader_wait_split.py" \
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   452
  > 2> $TESTTMP/reader.stderr \
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   453
  > > $TESTTMP/reader.stdout &
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   454
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   455
Do a failed pull in //
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   456
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   457
  $ hg pull ../troffset-computation
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   458
  pulling from ../troffset-computation
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   459
  searching for changes
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   460
  adding changesets
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   461
  adding manifests
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   462
  adding file changes
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   463
  transaction abort!
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   464
  rollback completed
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   465
  abort: pretxnclose hook exited with status 1
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   466
  [40]
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   467
  $ touch $TESTTMP/writer-revlog-unsplit
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   468
  $ wait
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   469
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   470
The reader should be fine
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   471
  $ cat $TESTTMP/reader.stderr
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   472
  $ cat $TESTTMP/reader.stdout
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   473
                     1 (no-eol)
50686
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   474
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   475
  $ hg verify -q
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   476
50343
b0cdd0bea103 revlog: test possible read race condition with splitting
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50342
diff changeset
   477
  $ cd ..
50344
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   478
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   479
pending hooks
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   480
=============
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   481
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   482
We checks that hooks properly see the inside of the transaction, while other process don't.
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   483
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   484
  $ hg clone --quiet --rev 1 troffset-computation troffset-computation-hooks
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   485
  $ cd troffset-computation-hooks
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   486
  $ cat > .hg/hgrc <<EOF
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   487
  > [hooks]
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   488
  > pretxnclose.01-echo = hg cat -r 'max(all())' file | f --size
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   489
  > pretxnclose.02-echo = $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/hook-done $TESTTMP/hook-tr-ready
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   490
  > pretxnclose.03-abort = false
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   491
  > EOF
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   492
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   493
  $ (
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   494
  >   $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/hook-tr-ready;\
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   495
  >   hg cat -r 'max(all())' file | f --size;\
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   496
  >   touch $TESTTMP/hook-done
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   497
  > ) >stdout 2>stderr &
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   498
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   499
  $ hg pull ../troffset-computation
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   500
  pulling from ../troffset-computation
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   501
  searching for changes
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   502
  adding changesets
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   503
  adding manifests
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   504
  adding file changes
50642
05d429fe84ed revlog: fix a bug in revlog splitting
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 50452
diff changeset
   505
  size=135168
50344
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   506
  transaction abort!
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   507
  rollback completed
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   508
  abort: pretxnclose.03-abort hook exited with status 1
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   509
  [40]
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   510
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   511
  $ cat stdout
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   512
  size=1024
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   513
  $ cat stderr
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   514
50686
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   515
  $ hg verify -q
a41eeb877d07 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50662
diff changeset
   516
50344
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   517
6487737e0f00 revlog: test that pending hooks properly see the repository on split
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50343
diff changeset
   518
  $ cd ..