tests/test-rollback.t
author Martin von Zweigbergk <martinvonz@google.com>
Mon, 22 Nov 2021 17:21:55 -0800
changeset 48370 45a073af50a2
parent 46417 768056549737
child 49825 2f2682f40ea0
permissions -rw-r--r--
errors: use detailed error for invalid commit-extras argument Differential Revision: https://phab.mercurial-scm.org/D11831
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
     1
setup repo
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 13446
diff changeset
     2
  $ hg init t
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
     3
  $ cd t
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
     4
  $ echo a > a
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
     5
  $ hg commit -Am'add a'
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
     6
  adding a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
     7
  $ hg verify
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
     8
  checking changesets
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
     9
  checking manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    10
  crosschecking files in changesets and manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    11
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 36645
diff changeset
    12
  checked 1 changesets with 1 changes to 1 files
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    13
  $ hg parents
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    14
  changeset:   0:1f0dee641bb7
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    15
  tag:         tip
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    16
  user:        test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    17
  date:        Thu Jan 01 00:00:00 1970 +0000
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    18
  summary:     add a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    19
  
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    20
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    21
rollback to null revision
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    22
  $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    23
  $ hg rollback
13446
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 13185
diff changeset
    24
  repository tip rolled back to revision -1 (undo commit)
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 13185
diff changeset
    25
  working directory now based on revision -1
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    26
  $ hg verify
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    27
  checking changesets
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    28
  checking manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    29
  crosschecking files in changesets and manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    30
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 36645
diff changeset
    31
  checked 0 changesets with 0 changes to 0 files
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    32
  $ hg parents
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    33
  $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    34
  A a
5814
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
    35
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    36
Two changesets this time so we rollback to a real changeset
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    37
  $ hg commit -m'add a again'
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    38
  $ echo a >> a
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    39
  $ hg commit -m'modify a'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    40
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    41
Test issue 902 (current branch is preserved)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    42
  $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    43
  marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
    44
  (branches are permanent and global, did you want a bookmark?)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    45
  $ hg rollback
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    46
  repository tip rolled back to revision 0 (undo commit)
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    47
  working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    48
  $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    49
  default
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    50
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    51
Test issue 1635 (commit message saved)
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    52
  $ cat .hg/last-message.txt ; echo
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    53
  modify a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    54
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    55
Test rollback of hg before issue 902 was fixed
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
    56
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    57
  $ hg commit -m "test3"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    58
  $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    59
  marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
    60
  (branches are permanent and global, did you want a bookmark?)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    61
  $ rm .hg/undo.branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    62
  $ hg rollback
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    63
  repository tip rolled back to revision 0 (undo commit)
15130
3d44e68360a6 rollback: refactor for readability; cosmetics.
Greg Ward <greg@gerg.ca>
parents: 15108
diff changeset
    64
  named branch could not be reset: current branch is still 'test'
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
    65
  working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    66
  $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    67
  test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    68
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    69
working dir unaffected by rollback: do not restore dirstate et. al.
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    70
  $ hg log --template '{rev}  {branch}  {desc|firstline}\n'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    71
  0  default  add a again
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    72
  $ hg status
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    73
  M a
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    74
  $ hg bookmark foo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    75
  $ hg commit -m'modify a again'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    76
  $ echo b > b
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
    77
  $ hg bookmark bar -r default #making bar active, before the transaction
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    78
  $ hg commit -Am'add b'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    79
  adding b
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    80
  $ hg log --template '{rev}  {branch}  {desc|firstline}\n'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    81
  2  test  add b
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    82
  1  test  modify a again
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    83
  0  default  add a again
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
    84
  $ hg update bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    85
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
    86
  (activating bookmark bar)
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    87
  $ cat .hg/undo.branch ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    88
  test
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
    89
  $ hg rollback -f
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    90
  repository tip rolled back to revision 1 (undo commit)
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    91
  $ hg id -n
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    92
  0
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    93
  $ hg branch
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    94
  default
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    95
  $ cat .hg/bookmarks.current ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    96
  bar
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
    97
  $ hg bookmark --delete foo bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
    98
22183
4dd9f606d0a6 tests: fixup issue markers to make check-commit happy
Matt Mackall <mpm@selenic.com>
parents: 21404
diff changeset
    99
rollback by pretxncommit saves commit message (issue1635)
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
   100
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   101
  $ echo a >> a
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   102
  $ hg --config hooks.pretxncommit=false commit -m"precious commit message"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   103
  transaction abort!
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   104
  rollback completed
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   105
  abort: pretxncommit hook exited with status * (glob)
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44733
diff changeset
   106
  [40]
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   107
  $ cat .hg/last-message.txt ; echo
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   108
  precious commit message
13185
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
   109
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
   110
same thing, but run $EDITOR
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
   111
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
   112
  $ cat > editor.sh << '__EOF__'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   113
  > echo "another precious commit message" > "$1"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   114
  > __EOF__
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
   115
  $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg --config hooks.pretxncommit=false commit 2>&1
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   116
  transaction abort!
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   117
  rollback completed
41362
57c462db87fd localrepo: use context manager for transaction in commit()
Martin von Zweigbergk <martinvonz@google.com>
parents: 40541
diff changeset
   118
  note: commit message saved in .hg/last-message.txt
44733
c6d31e659a28 commit: tell user what to do with .hg/last-message.txt
Martin von Zweigbergk <martinvonz@google.com>
parents: 44355
diff changeset
   119
  note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   120
  abort: pretxncommit hook exited with status * (glob)
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44733
diff changeset
   121
  [40]
12642
bb35840e965c tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents: 12485
diff changeset
   122
  $ cat .hg/last-message.txt
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   123
  another precious commit message
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
   124
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   125
test rollback on served repository
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   126
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
   127
#if serve
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   128
  $ hg commit -m "precious commit message"
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   129
  $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   130
  $ cat hg.pid >> $DAEMON_PIDS
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   131
  $ cd ..
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   132
  $ hg clone http://localhost:$HGPORT u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   133
  requesting all changes
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   134
  adding changesets
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   135
  adding manifests
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   136
  adding file changes
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
   137
  added 3 changesets with 2 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33755
diff changeset
   138
  new changesets 23b0221f3370:068774709090
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
   139
  updating to branch default
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   140
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   141
  $ cd u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   142
  $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
   143
  068774709090
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   144
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   145
now rollback and observe that 'hg serve' reloads the repository and
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   146
presents the correct tip changeset:
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   147
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   148
  $ hg -R ../t rollback
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
   149
  repository tip rolled back to revision 1 (undo commit)
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
   150
  working directory now based on revision 0
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
   151
  $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
   152
  791dd2169706
31770
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
   153
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
   154
  $ killdaemons.py
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
   155
#endif
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   156
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   157
update to older changeset and then refuse rollback, because
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   158
that would lose data (issue2998)
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   159
  $ cd ../t
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   160
  $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   161
  $ rm `hg status -un`
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   162
  $ template='{rev}:{node|short}  [{branch}]  {desc|firstline}\n'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   163
  $ echo 'valuable new file' > b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   164
  $ echo 'valuable modification' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   165
  $ hg commit -A -m'a valuable change'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   166
  adding b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   167
  $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   168
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   169
  $ hg rollback
15187
0292f88d3b86 rollback: use a hint for force
Matt Mackall <mpm@selenic.com>
parents: 15183
diff changeset
   170
  abort: rollback of last commit while not checked out may lose data
0292f88d3b86 rollback: use a hint for force
Matt Mackall <mpm@selenic.com>
parents: 15183
diff changeset
   171
  (use -f to force)
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   172
  [255]
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   173
  $ hg tip -q
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   174
  2:4d9cd3795eea
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   175
  $ hg rollback -f
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   176
  repository tip rolled back to revision 1 (undo commit)
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   177
  $ hg status
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   178
  $ hg log --removed b   # yep, it's gone
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   179
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   180
same again, but emulate an old client that doesn't write undo.desc
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   181
  $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   182
  $ echo 'valuable modification redux' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   183
  $ hg commit -m'a valuable change redux'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   184
  $ rm .hg/undo.desc
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   185
  $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   186
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   187
  $ hg rollback
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   188
  rolling back unknown transaction
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   189
  $ cat a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
   190
  a
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16901
diff changeset
   191
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   192
corrupt journal test
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   193
  $ echo "foo" > .hg/store/journal
44355
7a4e1d245f19 recover: don't verify by default
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 41362
diff changeset
   194
  $ hg recover --verify
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   195
  rolling back interrupted transaction
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   196
  couldn't read journal entry 'foo\n'!
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   197
  checking changesets
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   198
  checking manifests
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   199
  crosschecking files in changesets and manifests
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   200
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 36645
diff changeset
   201
  checked 2 changesets with 2 changes to 1 files
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
   202
29086
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   203
rollback disabled by config
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   204
  $ cat >> $HGRCPATH <<EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   205
  > [ui]
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   206
  > rollback = false
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   207
  > EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   208
  $ echo narf >> pinky-sayings.txt
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   209
  $ hg add pinky-sayings.txt
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   210
  $ hg ci -m 'First one.'
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   211
  $ hg rollback
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   212
  abort: rollback is disabled because it is unsafe
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   213
  (see `hg help -v rollback` for information)
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   214
  [255]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   215
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   216
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   217
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   218
I/O errors on stdio are handled properly (issue5658)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   219
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   220
  $ cat > badui.py << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   221
  > import errno
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   222
  > from mercurial.i18n import _
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   223
  > from mercurial import (
36645
7bc33d677c0c tests: fix various test-check-module-imports.t violations
Augie Fackler <augie@google.com>
parents: 36486
diff changeset
   224
  >     error,
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   225
  >     registrar,
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   226
  >     ui as uimod,
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   227
  > )
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   228
  > 
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   229
  > configtable = {}
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   230
  > configitem = registrar.configitem(configtable)
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   231
  > 
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   232
  > configitem(b'ui', b'ioerrors',
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   233
  >     default=list,
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   234
  > )
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   235
  > 
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   236
  > def pretxncommit(ui, repo, **kwargs):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   237
  >     ui.warn(b'warn during pretxncommit\n')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   238
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   239
  > def pretxnclose(ui, repo, **kwargs):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   240
  >     ui.warn(b'warn during pretxnclose\n')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   241
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   242
  > def txnclose(ui, repo, **kwargs):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   243
  >     ui.warn(b'warn during txnclose\n')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   244
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   245
  > def txnabort(ui, repo, **kwargs):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   246
  >     ui.warn(b'warn during abort\n')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   247
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   248
  > class fdproxy(object):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   249
  >     def __init__(self, ui, o):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   250
  >         self._ui = ui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   251
  >         self._o = o
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   252
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   253
  >     def __getattr__(self, attr):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   254
  >         return getattr(self._o, attr)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   255
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   256
  >     def write(self, msg):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   257
  >         errors = set(self._ui.configlist(b'ui', b'ioerrors'))
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   258
  >         pretxncommit = msg == b'warn during pretxncommit\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   259
  >         pretxnclose = msg == b'warn during pretxnclose\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   260
  >         txnclose = msg == b'warn during txnclose\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   261
  >         txnabort = msg == b'warn during abort\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   262
  >         msgabort = msg == _(b'transaction abort!\n')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   263
  >         msgrollback = msg == _(b'rollback completed\n')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   264
  > 
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   265
  >         if pretxncommit and b'pretxncommit' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   266
  >             raise IOError(errno.EPIPE, 'simulated epipe')
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   267
  >         if pretxnclose and b'pretxnclose' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   268
  >             raise IOError(errno.EIO, 'simulated eio')
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   269
  >         if txnclose and b'txnclose' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   270
  >             raise IOError(errno.EBADF, 'simulated badf')
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   271
  >         if txnabort and b'txnabort' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   272
  >             raise IOError(errno.EPIPE, 'simulated epipe')
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   273
  >         if msgabort and b'msgabort' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   274
  >             raise IOError(errno.EBADF, 'simulated ebadf')
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   275
  >         if msgrollback and b'msgrollback' in errors:
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   276
  >             raise IOError(errno.EIO, 'simulated eio')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   277
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   278
  >         return self._o.write(msg)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   279
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   280
  > def uisetup(ui):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   281
  >     class badui(ui.__class__):
40541
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39489
diff changeset
   282
  >         def _write(self, dest, *args, **kwargs):
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   283
  >             olderr = self.ferr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   284
  >             try:
40541
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39489
diff changeset
   285
  >                 if dest is self.ferr:
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39489
diff changeset
   286
  >                     self.ferr = dest = fdproxy(self, olderr)
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39489
diff changeset
   287
  >                 return super(badui, self)._write(dest, *args, **kwargs)
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   288
  >             finally:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   289
  >                 self.ferr = olderr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   290
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   291
  >     ui.__class__ = badui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   292
  > 
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   293
  > def reposetup(ui, repo):
36486
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   294
  >     ui.setconfig(b'hooks', b'pretxnclose.badui', pretxnclose, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   295
  >     ui.setconfig(b'hooks', b'txnclose.badui', txnclose, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   296
  >     ui.setconfig(b'hooks', b'pretxncommit.badui', pretxncommit, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
   297
  >     ui.setconfig(b'hooks', b'txnabort.badui', txnabort, b'badui')
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   298
  > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   299
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   300
  $ cat >> $HGRCPATH << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   301
  > [extensions]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   302
  > badui = $TESTTMP/badui.py
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   303
  > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   304
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   305
An I/O error during pretxncommit is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   306
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   307
  $ hg init ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   308
  $ cd ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   309
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   310
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   311
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   312
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   313
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   314
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   315
  $ hg --config ui.ioerrors=pretxncommit commit -m 'error during pretxncommit'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   316
  warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   317
  warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   318
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   319
  $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   320
  nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   321
  [1]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   322
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   323
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   324
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   325
An I/O error during pretxnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   326
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   327
  $ hg init ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   328
  $ cd ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   329
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   330
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   331
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   332
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   333
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   334
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   335
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   336
  $ hg --config ui.ioerrors=pretxnclose commit -m 'error during pretxnclose'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   337
  warn during pretxncommit
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   338
  warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   339
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   340
  $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   341
  nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   342
  [1]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   343
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   344
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   345
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   346
An I/O error during txnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   347
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   348
  $ hg init ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   349
  $ cd ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   350
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   351
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   352
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   353
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   354
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   355
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   356
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   357
  $ hg --config ui.ioerrors=txnclose commit -m 'error during txnclose'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   358
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   359
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   360
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   361
  $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   362
  nothing changed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   363
  [1]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   364
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   365
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   366
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   367
An I/O error writing "transaction abort" is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   368
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   369
  $ hg init ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   370
  $ cd ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   371
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   372
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   373
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   374
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   375
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   376
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   377
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   378
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   379
  $ hg --config ui.ioerrors=msgabort --config hooks.pretxncommit=false commit -m 'error during abort message'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   380
  warn during abort
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   381
  rollback completed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   382
  abort: pretxncommit hook exited with status 1
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44733
diff changeset
   383
  [40]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   384
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   385
  $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   386
  warn during pretxncommit
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   387
  warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
   388
  warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   389
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   390
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   391
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   392
An I/O error during txnabort should still result in rollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   393
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   394
  $ hg init ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   395
  $ cd ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   396
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   397
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   398
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   399
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   400
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   401
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   402
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   403
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   404
  $ hg --config ui.ioerrors=txnabort --config hooks.pretxncommit=false commit -m 'error during abort'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   405
  transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   406
  rollback completed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   407
  abort: pretxncommit hook exited with status 1
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44733
diff changeset
   408
  [40]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   409
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   410
  $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   411
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   412
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   413
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   414
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   415
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   416
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   417
An I/O error writing "rollback completed" is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   418
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   419
  $ hg init ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   420
  $ cd ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   421
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   422
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   423
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   424
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   425
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   426
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   427
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   428
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   429
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   430
  $ hg --config ui.ioerrors=msgrollback --config hooks.pretxncommit=false commit -m 'error during rollback message'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   431
  transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   432
  warn during abort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   433
  abort: pretxncommit hook exited with status 1
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44733
diff changeset
   434
  [40]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   435
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   436
  $ hg verify
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   437
  checking changesets
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   438
  checking manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   439
  crosschecking files in changesets and manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   440
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 36645
diff changeset
   441
  checked 1 changesets with 1 changes to 1 files
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   442
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   443
  $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   444
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   445
Multiple I/O errors after transaction open are handled.
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   446
This is effectively what happens if a peer disconnects in the middle
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   447
of a transaction.
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   448
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   449
  $ hg init ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   450
  $ cd ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   451
  $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   452
  $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   453
  warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   454
  warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   455
  warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   456
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   457
  $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   458
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   459
  $ hg --config ui.ioerrors=pretxncommit,pretxnclose,txnclose,txnabort,msgabort,msgrollback commit -m 'multiple errors'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   460
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   461
  $ hg verify
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   462
  checking changesets
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   463
  checking manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   464
  crosschecking files in changesets and manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   465
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 36645
diff changeset
   466
  checked 2 changesets with 2 changes to 1 files
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   467
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
   468
  $ cd ..