tests/test-transaction-safety.t
author Matt Harbison <matt_harbison@yahoo.com>
Wed, 25 Sep 2024 01:16:47 -0400
changeset 51900 77a9c7d8a7ba
parent 51180 2e0b2a387502
permissions -rw-r--r--
statichttprepo: stop shadowing the `bytes` builtin PyCharm flagged it, but I also misunderstood when looking at the code, because the name implied a byte string, not a number.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
Test transaction safety
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
=======================
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
47263
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
     4
#testcases revlogv1 revlogv2 changelogv2
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
     5
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
     6
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
     7
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
     8
  $ cat << EOF >> $HGRCPATH
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
     9
  > [experimental]
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    10
  > revlogv2=no
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    11
  > EOF
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    12
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    13
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    14
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    15
#if revlogv2
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    16
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    17
  $ cat << EOF >> $HGRCPATH
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    18
  > [experimental]
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    19
  > revlogv2=enable-unstable-format-and-corrupt-my-data
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    20
  > EOF
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    21
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    22
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
    23
47263
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    24
#if changelogv2
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    25
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    26
  $ cat << EOF >> $HGRCPATH
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    27
  > [format]
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    28
  > exp-use-changelog-v2=enable-unstable-format-and-corrupt-my-data
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    29
  > EOF
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    30
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    31
#endif
6c84fc9c9a90 changelogv2: introduce a "changelogv2" feature
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47241
diff changeset
    32
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
This test basic case to make sure external process do not see transaction
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
content until it is committed.
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
# TODO: also add an external reader accessing revlog files while they are written
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
#       (instead of during transaction finalisation)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
# TODO: also add stream clone and hardlink clone happening during these transaction.
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
setup
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
-----
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
47781
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    44
synchronisation+output script using the following schedule:
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    45
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    46
[A1] "external"       is started
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    47
[A2] "external"       waits on EXT_UNLOCK
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    48
[A2] "external"       + creates EXT_WAITING → unlocks [C1]
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    49
[B1] "hg commit/pull" is started
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    50
[B2] "hg commit/pull" is ready to be committed
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    51
[B3] "hg commit/pull" spawn "internal" using a pretxnclose hook (need [C4])
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    52
[C1] "internal"       waits on EXT_WAITING (need [A2])
47782
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    53
[C2] "internal"       creates EXT_UNLOCK → unlocks [A2]
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    54
[C3] "internal"       show the tipmost revision (inside of the transaction)
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    55
[C4] "internal"       waits on EXT_DONE (need [A4])
47781
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    56
[A3] "external"       show the tipmost revision (outside of the transaction)
47782
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    57
[A4] "external"       creates EXT_DONE → unlocks [C4]
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    58
[C5] "internal"       end of execution -> unlock [B3]
47781
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    59
[B4] "hg commit/pull" transaction is committed on disk
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    60
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  $ mkdir sync
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  $ mkdir output
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  $ mkdir script
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  $ HG_TEST_FILE_EXT_WAITING=$TESTTMP/sync/ext_waiting
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  $ export HG_TEST_FILE_EXT_WAITING
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  $ HG_TEST_FILE_EXT_UNLOCK=$TESTTMP/sync/ext_unlock
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  $ export HG_TEST_FILE_EXT_UNLOCK
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  $ HG_TEST_FILE_EXT_DONE=$TESTTMP/sync/ext_done
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  $ export HG_TEST_FILE_EXT_DONE
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  $ cat << EOF > script/external.sh
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  > #!/bin/sh
47313
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
    73
  > "$RUNTESTDIR/testlib/wait-on-file" 5 "$HG_TEST_FILE_EXT_UNLOCK" "$HG_TEST_FILE_EXT_WAITING"
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
    74
  > hg log --rev 'tip' -T 'external: {rev} {desc}\n' > "$TESTTMP/output/external.out"
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
    75
  > touch "$HG_TEST_FILE_EXT_DONE"
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
  > EOF
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
  $ cat << EOF > script/internal.sh
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
  > #!/bin/sh
47781
4870a8dc24d9 test-transaction-safety: document the test schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47313
diff changeset
    79
  > "$RUNTESTDIR/testlib/wait-on-file" 5 "$HG_TEST_FILE_EXT_WAITING"
47782
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    80
  > touch "$HG_TEST_FILE_EXT_UNLOCK"
47313
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
    81
  > hg log --rev 'tip' -T 'internal: {rev} {desc}\n' > "$TESTTMP/output/internal.out"
47782
ebfc315c6077 test-transaction-safety: relax some of the synchronisation schedule
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47781
diff changeset
    82
  > "$RUNTESTDIR/testlib/wait-on-file" 5 "$HG_TEST_FILE_EXT_DONE"
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  > EOF
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
Automated commands:
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  $ make_one_commit() {
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
  > rm -f $TESTTMP/sync/*
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
  > rm -f $TESTTMP/output/*
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  > hg log --rev 'tip' -T 'pre-commit: {rev} {desc}\n'
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
    92
  > echo x >> of
47313
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
    93
  > sh $TESTTMP/script/external.sh & hg commit -m "$1"
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  > cat $TESTTMP/output/external.out
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
  > cat $TESTTMP/output/internal.out
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
  > hg log --rev 'tip' -T 'post-tr:  {rev} {desc}\n'
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
  > }
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    99
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
  $ make_one_pull() {
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
  > rm -f $TESTTMP/sync/*
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
  > rm -f $TESTTMP/output/*
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
  > hg log --rev 'tip' -T 'pre-commit: {rev} {desc}\n'
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   104
  > echo x >> of
47313
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
   105
  > sh $TESTTMP/script/external.sh & hg pull ../other-repo/ --rev "$1" --force --quiet
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
  > cat $TESTTMP/output/external.out
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  > cat $TESTTMP/output/internal.out
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
  > hg log --rev 'tip' -T 'post-tr:  {rev} {desc}\n'
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   109
  > }
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   111
prepare a large source to which to pull from:
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   113
The source is large to unsure we don't use inline more after the pull
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   115
  $ hg init other-repo
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   116
  $ hg -R other-repo debugbuilddag .+500 --overwritten-file
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   117
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   118
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   119
prepare an empty repository where to make test:
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   120
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   121
  $ hg init repo
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   122
  $ cd repo
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   123
  $ touch of
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   124
  $ hg add of
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   125
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   126
prepare a small extension to controll inline size
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   127
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   128
  $ mkdir $TESTTMP/ext
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  $ cat << EOF > $TESTTMP/ext/small_inline.py
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   130
  > from mercurial import revlog
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   131
  > revlog._maxinline = 3 * 100
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   132
  > EOF
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   133
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   134
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   135
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   137
  $ cat << EOF >> $HGRCPATH
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   138
  > [extensions]
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   139
  > small_inline=$TESTTMP/ext/small_inline.py
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   140
  > [hooks]
47313
b1ce93dcdf3c tests: fix test-transaction-safety.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 47263
diff changeset
   141
  > pretxnclose = sh $TESTTMP/script/internal.sh
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   142
  > EOF
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   143
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   144
check this is true for the initial commit (inline → inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   145
-----------------------------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   146
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   147
the repository should still be inline (for relevant format)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   148
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   149
  $ make_one_commit first
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   150
  pre-commit: -1 
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   151
  external: -1 
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   152
  internal: 0 first
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   153
  post-tr:  0 first
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   154
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   155
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   156
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   157
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   158
  flags  : inline, * (glob)
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   159
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   160
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   161
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   162
check this is true for extra commit (inline → inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   163
-----------------------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   164
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   165
the repository should still be inline (for relevant format)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   166
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   167
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   168
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   169
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   170
  flags  : inline, * (glob)
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   171
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   172
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   173
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   174
  $ make_one_commit second
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   175
  pre-commit: 0 first
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   176
  external: 0 first
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   177
  internal: 1 second
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   178
  post-tr:  1 second
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   179
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   180
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   181
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   182
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   183
  flags  : inline, * (glob)
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   184
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   185
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   186
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   187
check this is true for a small pull (inline → inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   188
-----------------------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   189
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   190
the repository should still be inline (for relevant format)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   191
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   192
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   193
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   194
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   195
  flags  : inline, * (glob)
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   196
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   197
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   198
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   199
  $ make_one_pull 3
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   200
  pre-commit: 1 second
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   201
  warning: repository is unrelated
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   202
  external: 1 second
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   203
  internal: 5 r3
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   204
  post-tr:  5 r3
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   205
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   206
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   207
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   208
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   209
  flags  : inline, * (glob)
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   210
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   211
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   212
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   213
Make a large pull (inline → no-inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   214
---------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   215
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   216
the repository should no longer be inline (for relevant format)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   217
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   218
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   219
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   220
  $ hg debugrevlog of | grep inline
51180
2e0b2a387502 test-transaction-safety: glog out irrelevant flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 51179
diff changeset
   221
  flags  : inline, * (glob)
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   222
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   223
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   224
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   225
  $ make_one_pull 400
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   226
  pre-commit: 5 r3
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   227
  external: 5 r3
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   228
  internal: 402 r400
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   229
  post-tr:  402 r400
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   230
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   231
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   232
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   233
  $ hg debugrevlog of | grep inline
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   234
  [1]
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   235
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   236
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   237
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   238
check this is true for extra commit (no-inline → no-inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   239
-----------------------------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   240
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   241
the repository should no longer be inline (for relevant format)
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   242
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   243
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   244
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   245
  $ hg debugrevlog of | grep inline
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   246
  [1]
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   247
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   248
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   249
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   250
  $ make_one_commit third
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   251
  pre-commit: 402 r400
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   252
  external: 402 r400
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   253
  internal: 403 third
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   254
  post-tr:  403 third
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   255
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   256
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   257
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   258
  $ hg debugrevlog of | grep inline
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   259
  [1]
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   260
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   261
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   262
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   263
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   264
Make a  pull (not-inline → no-inline)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   265
-------------------------------------
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   266
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   267
the repository should no longer be inline (for relevant format)
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   268
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   269
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   270
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   271
  $ hg debugrevlog of | grep inline
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   272
  [1]
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   273
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   274
#endif
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   275
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   276
  $ make_one_pull tip
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   277
  pre-commit: 403 third
47239
682f09857d69 revlogv2: delay the update of the changelog docket to transaction end
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47237
diff changeset
   278
  external: 403 third
47241
2219853a1503 revlogv2: track pending write in the docket and expose it to hooks
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47239
diff changeset
   279
  internal: 503 r500
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   280
  post-tr:  503 r500
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   281
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   282
#if revlogv1
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   283
51179
cf23a8432f51 test-transaction-safety: perform the test on a filelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47782
diff changeset
   284
  $ hg debugrevlog of | grep inline
47236
1422eef04309 revlog: add a new test file focussed on testing transactionally issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   285
  [1]
47237
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   286
864f4ebe6a8d revlogv2: also test transactionality of revlog v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47236
diff changeset
   287
#endif