tests/test-transaction-wc-rollback-race.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 22 Feb 2023 18:05:36 +0100
branchstable
changeset 50170 a9a13b160db9
parent 50169 34ab5c7b7f98
child 50171 d956ceed3289
permissions -rw-r--r--
transaction: tests we don't overwrite tracking to changed file on abort spoiler: we do…
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50169
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
=======================================================================
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
Check potential race condition around transaction and working copy data
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
=======================================================================
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
#testcases bookmarks-in-store bookmarks-wc-level
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
The transaction is garanteed to run with the lock, but may runs without the
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
wlock. So if the transaction backup/restore some content related to the
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
working-copy and protected by the wlock, we might run into trouble if another
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
process grab the wlock and modify them.
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
This test file is testing various cases where such parallel changes happens to
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
validate the transaction behavior.
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
Other is used to get a simple pull source. As pull is a simple way to create
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
transaction without the wlock.
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
Setup
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
=====
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
Avoid long deadlock
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
  $ cat << EOF >> $HGRCPATH
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
  > [ui]
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  > timeout=10
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
  > EOF
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
#if bookmarks-in-store
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
  $ cat << EOF >> $HGRCPATH
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  > [format]
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  > bookmarks-in-store = yes
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  > EOF
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
#endif
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
  $ hg init repo
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
  $ cd repo
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
  $ for filename in a b c d e f g h i j k l m; do
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
  >     echo $filename > default_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
  >     hg add default_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
  >     hg commit --quiet --message default_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
  > done
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  $ hg bookmark --rev . foo
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
  $ hg branch babar
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
  marked working directory as branch babar
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
  (branches are permanent and global, did you want a bookmark?)
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  $ for filename in a b c d e f g h i j k l m; do
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  >     echo $filename > babar_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
  >     hg add babar_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
  >     hg commit --quiet --message babar_$filename
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
  > done
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  $ hg bookmark --rev . bar
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
  $ hg up 'desc("default_m")'
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
  0 files updated, 0 files merged, 13 files removed, 0 files unresolved
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    55
  $ hg log -G -T '[{branch}] ({bookmarks}) {desc}\n'
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
  o  [babar] (bar) babar_m
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  o  [babar] () babar_l
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  o  [babar] () babar_k
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  o  [babar] () babar_j
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  o  [babar] () babar_i
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  o  [babar] () babar_h
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  o  [babar] () babar_g
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  o  [babar] () babar_f
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  o  [babar] () babar_e
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
  o  [babar] () babar_d
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
  o  [babar] () babar_c
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
  o  [babar] () babar_b
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
  o  [babar] () babar_a
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  @  [default] (foo) default_m
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
  o  [default] () default_l
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  o  [default] () default_k
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  o  [default] () default_j
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
  o  [default] () default_i
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
  o  [default] () default_h
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  o  [default] () default_g
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
  o  [default] () default_f
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
  o  [default] () default_e
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    99
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
  o  [default] () default_d
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
  o  [default] () default_c
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   104
  o  [default] () default_b
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   105
  |
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
  o  [default] () default_a
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   109
  $ cat << EOF >> ../txn-close.sh
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
  > rm -f $TESTTMP/transaction-continue
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   111
  > $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/transaction-continue $TESTTMP/transaction-waiting
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
  > rm -f $TESTTMP/transaction-waiting
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   113
  > exit 1
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
  > EOF
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   115
  $ cat << EOF >> .hg/hgrc
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   116
  > [hooks]
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   117
  > pretxnclose.test = sh $TESTTMP/txn-close.sh
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   118
  > EOF
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   119
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   120
Check the overall logic is working, the transaction is holding the `lock` , but
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   121
not the `wlock`, then get aborted on a signal-file.
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   122
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   123
  $ hg phase --rev 0
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   124
  0: draft
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   125
  $ hg phase --public --rev 0 2> ../log.err &
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   126
  $ $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/transaction-waiting
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   127
  $ echo y | hg --config ui.interactive=yes debuglock --set-wlock
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   128
  ready to release the lock (y)?  y
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  $ echo y | hg --config ui.interactive=yes debuglock --set-lock
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   130
  abort: lock is already held
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   131
  [255]
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   132
  $ touch $TESTTMP/transaction-continue
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   133
  $ wait
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   134
  $ hg phase --rev 0
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   135
  0: draft
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
  $ cat ../log.err
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   137
  transaction abort!
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   138
  rollback completed
34ab5c7b7f98 transaction: the base of a new test file checking transaction abort issue
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   139
  abort: pretxnclose.test hook exited with status 1
50170
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   140
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   141
Actual testing
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   142
==============
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   143
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   144
Changing tracked file
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   145
---------------------
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   146
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   147
  $ hg status
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   148
  $ hg phase --public --rev 0 2> ../log.err &
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   149
  $ $RUNTESTDIR/testlib/wait-on-file 5 $TESTTMP/transaction-waiting
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   150
  $ hg forget default_a
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   151
  $ hg status
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   152
  R default_a
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   153
  $ touch $TESTTMP/transaction-continue
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   154
  $ wait
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   155
  $ hg status
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   156
  R default_a (missing-correct-output !)
a9a13b160db9 transaction: tests we don't overwrite tracking to changed file on abort
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50169
diff changeset
   157
  $ hg revert --all --quiet