tests/test-fncache.t
author Durham Goode <durham@fb.com>
Thu, 05 Mar 2015 22:16:28 -0800
changeset 24213 e0c1328df872
parent 23904 d251da5e0e84
child 25627 9573d8f346f1
permissions -rw-r--r--
workingctx: use normal dirs() instead of dirstate.dirs() The workingctx class was using dirstate.dirs() as it's implementation. The sparse extension maintains a pruned down version of the dirstate, so this resulted in the workingctx reporting an incorrect listing of directories during merge calculations (it was detecting directory renames when it shouldn't have). The fix is to use the default implementation, which uses workingctx._manifest, which unions the manifest with the dirstate to produce the correct overall picture. This also produces more accurate output since it will no longer return directories that have been entirely deleted in the dirstate. Tests will be added to the sparse extension to detect regressions for this.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     1
Init repo1:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     2
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     3
  $ hg init repo1
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     4
  $ cd repo1
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     5
  $ echo "some text" > a
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     6
  $ hg add
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     7
  adding a
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     8
  $ hg ci -m first
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
     9
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    10
  data/a.i
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    11
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    12
Testing a.i/b:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    13
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    14
  $ mkdir a.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    15
  $ echo "some other text" > a.i/b
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    16
  $ hg add
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 14266
diff changeset
    17
  adding a.i/b (glob)
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    18
  $ hg ci -m second
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    19
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    20
  data/a.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    21
  data/a.i.hg/b.i
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    22
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    23
Testing a.i.hg/c:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    24
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    25
  $ mkdir a.i.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    26
  $ echo "yet another text" > a.i.hg/c
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    27
  $ hg add
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 14266
diff changeset
    28
  adding a.i.hg/c (glob)
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    29
  $ hg ci -m third
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    30
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    31
  data/a.i
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    32
  data/a.i.hg.hg/c.i
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    33
  data/a.i.hg/b.i
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    34
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    35
Testing verify:
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    36
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    37
  $ hg verify
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    38
  checking changesets
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    39
  checking manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    40
  crosschecking files in changesets and manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    41
  checking files
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    42
  3 files, 3 changesets, 3 total revisions
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    43
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    44
  $ rm .hg/store/fncache
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    45
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    46
  $ hg verify
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    47
  checking changesets
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    48
  checking manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    49
  crosschecking files in changesets and manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    50
  checking files
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    51
   data/a.i@0: missing revlog!
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    52
   data/a.i.hg/c.i@2: missing revlog!
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    53
   data/a.i/b.i@1: missing revlog!
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    54
  3 files, 3 changesets, 3 total revisions
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    55
  3 integrity errors encountered!
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    56
  (first damaged changeset appears to be 0)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 11865
diff changeset
    57
  [1]
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    58
  $ cd ..
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    59
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    60
Non store repo:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    61
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    62
  $ hg --config format.usestore=False init foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    63
  $ cd foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    64
  $ mkdir tst.d
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    65
  $ echo foo > tst.d/foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    66
  $ hg ci -Amfoo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    67
  adding tst.d/foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    68
  $ find .hg | sort
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    69
  .hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    70
  .hg/00changelog.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    71
  .hg/00manifest.i
15886
a5917346c72e localrepo: update branchcache in a more reliable way
Mads Kiilerich <mads@kiilerich.com>
parents: 15483
diff changeset
    72
  .hg/cache
20185
7d4219512823 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io>
parents: 18382
diff changeset
    73
  .hg/cache/branch2-served
23786
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
    74
  .hg/cache/rbc-names-v1
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
    75
  .hg/cache/rbc-revs-v1
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    76
  .hg/data
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    77
  .hg/data/tst.d.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    78
  .hg/data/tst.d.hg/foo.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    79
  .hg/dirstate
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    80
  .hg/last-message.txt
15483
9ae766f2f452 phases: set new commit in 1-phase
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15455
diff changeset
    81
  .hg/phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    82
  .hg/requires
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    83
  .hg/undo
23904
d251da5e0e84 transaction: include backup file in the "undo" transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23786
diff changeset
    84
  .hg/undo.backupfiles
14266
89e7d35e0ef0 fix bookmarks rollback behavior
Alexander Solovyov <alexander@solovyov.net>
parents: 13389
diff changeset
    85
  .hg/undo.bookmarks
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    86
  .hg/undo.branch
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    87
  .hg/undo.desc
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    88
  .hg/undo.dirstate
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15447
diff changeset
    89
  .hg/undo.phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    90
  $ cd ..
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    91
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    92
Non fncache repo:
8633
c31fe74a6633 store encoding: .i/.d encoding for non-store repo (broken by 810387f59696)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8167
diff changeset
    93
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    94
  $ hg --config format.usefncache=False init bar
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    95
  $ cd bar
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    96
  $ mkdir tst.d
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    97
  $ echo foo > tst.d/Foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    98
  $ hg ci -Amfoo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    99
  adding tst.d/Foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   100
  $ find .hg | sort
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   101
  .hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   102
  .hg/00changelog.i
15886
a5917346c72e localrepo: update branchcache in a more reliable way
Mads Kiilerich <mads@kiilerich.com>
parents: 15483
diff changeset
   103
  .hg/cache
20185
7d4219512823 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io>
parents: 18382
diff changeset
   104
  .hg/cache/branch2-served
23786
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
   105
  .hg/cache/rbc-names-v1
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
   106
  .hg/cache/rbc-revs-v1
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   107
  .hg/dirstate
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   108
  .hg/last-message.txt
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   109
  .hg/requires
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   110
  .hg/store
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   111
  .hg/store/00changelog.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   112
  .hg/store/00manifest.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   113
  .hg/store/data
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   114
  .hg/store/data/tst.d.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   115
  .hg/store/data/tst.d.hg/_foo.i
15483
9ae766f2f452 phases: set new commit in 1-phase
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15455
diff changeset
   116
  .hg/store/phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   117
  .hg/store/undo
23904
d251da5e0e84 transaction: include backup file in the "undo" transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23786
diff changeset
   118
  .hg/store/undo.backupfiles
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15447
diff changeset
   119
  .hg/store/undo.phaseroots
14266
89e7d35e0ef0 fix bookmarks rollback behavior
Alexander Solovyov <alexander@solovyov.net>
parents: 13389
diff changeset
   120
  .hg/undo.bookmarks
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   121
  .hg/undo.branch
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   122
  .hg/undo.desc
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   123
  .hg/undo.dirstate
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   124
  $ cd ..
8633
c31fe74a6633 store encoding: .i/.d encoding for non-store repo (broken by 810387f59696)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8167
diff changeset
   125
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   126
Encoding of reserved / long paths in the store
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   127
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   128
  $ hg init r2
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   129
  $ cd r2
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   130
  $ cat <<EOF > .hg/hgrc
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   131
  > [ui]
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   132
  > portablefilenames = ignore
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   133
  > EOF
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   134
17748
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   135
  $ hg import -q --bypass - <<EOF
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   136
  > # HG changeset patch
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   137
  > # User test
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   138
  > # Date 0 0
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   139
  > # Node ID 1c7a2f7cb77be1a0def34e4c7cabc562ad98fbd7
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   140
  > # Parent  0000000000000000000000000000000000000000
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   141
  > 1
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   142
  > 
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   143
  > diff --git a/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-123456789-12.3456789-12345-ABCDEFGHIJKLMNOPRSTUVWXYZ-abcdefghjiklmnopqrstuvwxyz b/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-123456789-12.3456789-12345-ABCDEFGHIJKLMNOPRSTUVWXYZ-abcdefghjiklmnopqrstuvwxyz
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   144
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   145
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   146
  > +++ b/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-123456789-12.3456789-12345-ABCDEFGHIJKLMNOPRSTUVWXYZ-abcdefghjiklmnopqrstuvwxyz
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   147
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   148
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   149
  > diff --git a/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/TENTH/ELEVENTH/LOREMIPSUM.TXT b/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/TENTH/ELEVENTH/LOREMIPSUM.TXT
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   150
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   151
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   152
  > +++ b/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/TENTH/ELEVENTH/LOREMIPSUM.TXT
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   153
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   154
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   155
  > diff --git a/Project Planning/Resources/AnotherLongDirectoryName/Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt b/Project Planning/Resources/AnotherLongDirectoryName/Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   156
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   157
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   158
  > +++ b/Project Planning/Resources/AnotherLongDirectoryName/Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt	
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   159
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   160
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   161
  > diff --git a/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c b/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   162
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   163
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   164
  > +++ b/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   165
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   166
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   167
  > diff --git a/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider b/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   168
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   169
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   170
  > +++ b/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   171
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   172
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   173
  > EOF
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   174
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   175
  $ find .hg/store -name *.i  | sort
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   176
  .hg/store/00changelog.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   177
  .hg/store/00manifest.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   178
  .hg/store/data/bla.aux/pr~6e/_p_r_n/lpt/co~6d3/nu~6c/coma/foo._n_u_l/normal.c.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   179
  .hg/store/dh/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxx168e07b38e65eff86ab579afaaa8e30bfbe0f35f.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   180
  .hg/store/dh/au~78/second/x.prn/fourth/fi~3afth/sixth/seventh/eighth/nineth/tenth/loremia20419e358ddff1bf8751e38288aff1d7c32ec05.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   181
  .hg/store/dh/enterpri/openesba/contrib-/corba-bc/netbeans/wsdlexte/src/main/java/org.net7018f27961fdf338a598a40c4683429e7ffb9743.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   182
  .hg/store/dh/project_/resource/anotherl/followed/andanoth/andthenanextremelylongfilename0d8e1f4187c650e2f1fdca9fd90f786bc0976b6b.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   183
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   184
  $ cd ..
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   185
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   186
Aborting lock does not prevent fncache writes
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   187
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   188
  $ cat > exceptionext.py <<EOF
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   189
  > import os
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   190
  > from mercurial import commands, util
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   191
  > from mercurial.extensions import wrapfunction
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   192
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   193
  > def lockexception(orig, vfs, lockname, wait, releasefn, acquirefn, desc):
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   194
  >     def releasewrap():
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   195
  >         raise util.Abort("forced lock failure")
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   196
  >     return orig(vfs, lockname, wait, releasewrap, acquirefn, desc)
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   197
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   198
  > def reposetup(ui, repo):
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   199
  >     wrapfunction(repo, '_lock', lockexception)
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   200
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   201
  > cmdtable = {}
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   202
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   203
  > EOF
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   204
  $ extpath=`pwd`/exceptionext.py
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   205
  $ hg init fncachetxn
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   206
  $ cd fncachetxn
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   207
  $ printf "[extensions]\nexceptionext=$extpath\n" >> .hg/hgrc
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   208
  $ touch y
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   209
  $ hg ci -qAm y
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   210
  abort: forced lock failure
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   211
  [255]
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   212
  $ cat .hg/store/fncache
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   213
  data/y.i
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   214
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   215
Aborting transaction prevents fncache change
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   216
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   217
  $ cat > ../exceptionext.py <<EOF
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   218
  > import os
23510
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   219
  > from mercurial import commands, util, localrepo
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   220
  > from mercurial.extensions import wrapfunction
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   221
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   222
  > def wrapper(orig, self, *args, **kwargs):
23510
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   223
  >     tr = orig(self, *args, **kwargs)
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   224
  >     def fail(tr):
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   225
  >         raise util.Abort("forced transaction failure")
23510
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   226
  >     # zzz prefix to ensure it sorted after store.write
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   227
  >     tr.addfinalize('zzz-forcefails', fail)
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   228
  >     return tr
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   229
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   230
  > def uisetup(ui):
23510
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   231
  >     wrapfunction(localrepo.localrepository, 'transaction', wrapper)
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   232
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   233
  > cmdtable = {}
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   234
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   235
  > EOF
21760
a7f5967ff644 tests: ignore missing file with PYTHONDONTWRITEBYTECODE (issue4239)
Matt Mackall <mpm@selenic.com>
parents: 20883
diff changeset
   236
  $ rm -f "${extpath}c"
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   237
  $ touch z
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   238
  $ hg ci -qAm z
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   239
  transaction abort!
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   240
  rollback completed
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   241
  abort: forced transaction failure
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   242
  [255]
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   243
  $ cat .hg/store/fncache
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   244
  data/y.i
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   245
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   246
Aborted transactions can be recovered later
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   247
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   248
  $ cat > ../exceptionext.py <<EOF
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   249
  > import os
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   250
  > from mercurial import commands, util, transaction, localrepo
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   251
  > from mercurial.extensions import wrapfunction
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   252
  > 
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   253
  > def trwrapper(orig, self, *args, **kwargs):
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   254
  >     tr = orig(self, *args, **kwargs)
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   255
  >     def fail(tr):
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   256
  >         raise util.Abort("forced transaction failure")
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   257
  >     # zzz prefix to ensure it sorted after store.write
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   258
  >     tr.addfinalize('zzz-forcefails', fail)
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   259
  >     return tr
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   260
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   261
  > def abortwrapper(orig, self, *args, **kwargs):
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   262
  >     raise util.Abort("forced transaction failure")
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   263
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   264
  > def uisetup(ui):
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   265
  >     wrapfunction(localrepo.localrepository, 'transaction', trwrapper)
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   266
  >     wrapfunction(transaction.transaction, '_abort', abortwrapper)
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   267
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   268
  > cmdtable = {}
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   269
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   270
  > EOF
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   271
  $ rm -f "${extpath}c"
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   272
  $ hg up -q 1
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   273
  $ touch z
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   274
  $ hg ci -qAm z 2>/dev/null
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   275
  [255]
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   276
  $ cat .hg/store/fncache | sort
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   277
  data/y.i
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   278
  data/z.i
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   279
  $ hg recover
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   280
  rolling back interrupted transaction
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   281
  checking changesets
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   282
  checking manifests
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   283
  crosschecking files in changesets and manifests
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   284
  checking files
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   285
  1 files, 1 changesets, 1 total revisions
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   286
  $ cat .hg/store/fncache
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   287
  data/y.i