tests/test-fncache.t
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 16 Apr 2018 22:08:13 -0700
changeset 37783 9d818539abfa
parent 37415 c2c8962a9465
child 38661 8ac0c9cd4c48
permissions -rw-r--r--
wireproto: move supportedcompengines out of wireproto This function is used by both version 1 and version 2. It belongs in a common module. "wireprototypes" may not be the best module name. I may rename it... Differential Revision: https://phab.mercurial-scm.org/D3398
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37415
c2c8962a9465 simplestore: use a custom store for the simple store repo
Gregory Szorc <gregory.szorc@gmail.com>
parents: 36662
diff changeset
     1
#require repofncache
c2c8962a9465 simplestore: use a custom store for the simple store repo
Gregory Szorc <gregory.szorc@gmail.com>
parents: 36662
diff changeset
     2
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     3
Init repo1:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
     4
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     5
  $ hg init repo1
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     6
  $ cd repo1
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     7
  $ echo "some text" > a
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     8
  $ hg add
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
     9
  adding a
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    10
  $ hg ci -m first
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    11
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    12
  data/a.i
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
Testing a.i/b:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    15
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    16
  $ mkdir a.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    17
  $ echo "some other text" > a.i/b
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    18
  $ hg add
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 33956
diff changeset
    19
  adding a.i/b
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    20
  $ hg ci -m second
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    21
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    22
  data/a.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    23
  data/a.i.hg/b.i
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
Testing a.i.hg/c:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    26
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    27
  $ mkdir a.i.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    28
  $ echo "yet another text" > a.i.hg/c
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    29
  $ hg add
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 33956
diff changeset
    30
  adding a.i.hg/c
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    31
  $ hg ci -m third
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    32
  $ cat .hg/store/fncache | sort
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    33
  data/a.i
13389
3efc99ac2ac4 tests: sort fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 12316
diff changeset
    34
  data/a.i.hg.hg/c.i
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    35
  data/a.i.hg/b.i
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    36
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    37
Testing verify:
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    38
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    39
  $ hg verify
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    40
  checking changesets
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    41
  checking manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    42
  crosschecking files in changesets and manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    43
  checking files
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    44
  3 files, 3 changesets, 3 total revisions
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    45
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    46
  $ rm .hg/store/fncache
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    47
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    48
  $ hg verify
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    49
  checking changesets
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    50
  checking manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    51
  crosschecking files in changesets and manifests
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    52
  checking files
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 23904
diff changeset
    53
   warning: revlog 'data/a.i' not in fncache!
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 23904
diff changeset
    54
   warning: revlog 'data/a.i.hg/c.i' not in fncache!
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 23904
diff changeset
    55
   warning: revlog 'data/a.i/b.i' not in fncache!
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    56
  3 files, 3 changesets, 3 total revisions
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 23904
diff changeset
    57
  3 warnings encountered!
25653
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    58
  hint: run "hg debugrebuildfncache" to recover from corrupt fncache
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    59
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    60
Follow the hint to make sure it works
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    61
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    62
  $ hg debugrebuildfncache
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    63
  adding data/a.i
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    64
  adding data/a.i.hg/c.i
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    65
  adding data/a.i/b.i
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    66
  3 items added, 0 removed from fncache
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    67
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    68
  $ hg verify
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    69
  checking changesets
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    70
  checking manifests
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    71
  crosschecking files in changesets and manifests
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    72
  checking files
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    73
  3 files, 3 changesets, 3 total revisions
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25652
diff changeset
    74
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    75
  $ cd ..
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    76
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    77
Non store repo:
7290
a3871028aacf add test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    78
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    79
  $ hg --config format.usestore=False init foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    80
  $ cd foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    81
  $ mkdir tst.d
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    82
  $ echo foo > tst.d/foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    83
  $ hg ci -Amfoo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    84
  adding tst.d/foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    85
  $ find .hg | sort
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    86
  .hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    87
  .hg/00changelog.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    88
  .hg/00manifest.i
15886
a5917346c72e localrepo: update branchcache in a more reliable way
Mads Kiilerich <mads@kiilerich.com>
parents: 15483
diff changeset
    89
  .hg/cache
20185
7d4219512823 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io>
parents: 18382
diff changeset
    90
  .hg/cache/branch2-served
23786
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
    91
  .hg/cache/rbc-names-v1
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
    92
  .hg/cache/rbc-revs-v1
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    93
  .hg/data
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    94
  .hg/data/tst.d.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    95
  .hg/data/tst.d.hg/foo.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    96
  .hg/dirstate
33427
1bdafe1111ce tests: add extra output for fsmonitor at checking under .hg
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27192
diff changeset
    97
  .hg/fsmonitor.state (fsmonitor !)
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
    98
  .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
    99
  .hg/phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   100
  .hg/requires
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   101
  .hg/undo
26998
4414d500604f localrepo: put bookmark move following commit in one transaction
Laurent Charignon <lcharignon@fb.com>
parents: 26587
diff changeset
   102
  .hg/undo.backup.dirstate
23904
d251da5e0e84 transaction: include backup file in the "undo" transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23786
diff changeset
   103
  .hg/undo.backupfiles
14266
89e7d35e0ef0 fix bookmarks rollback behavior
Alexander Solovyov <alexander@solovyov.net>
parents: 13389
diff changeset
   104
  .hg/undo.bookmarks
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   105
  .hg/undo.branch
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   106
  .hg/undo.desc
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   107
  .hg/undo.dirstate
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15447
diff changeset
   108
  .hg/undo.phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   109
  $ cd ..
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   110
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   111
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
   112
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   113
  $ hg --config format.usefncache=False init bar
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   114
  $ cd bar
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   115
  $ mkdir tst.d
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   116
  $ echo foo > tst.d/Foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   117
  $ hg ci -Amfoo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   118
  adding tst.d/Foo
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   119
  $ find .hg | sort
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   120
  .hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   121
  .hg/00changelog.i
15886
a5917346c72e localrepo: update branchcache in a more reliable way
Mads Kiilerich <mads@kiilerich.com>
parents: 15483
diff changeset
   122
  .hg/cache
20185
7d4219512823 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io>
parents: 18382
diff changeset
   123
  .hg/cache/branch2-served
23786
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
   124
  .hg/cache/rbc-names-v1
7d63398fbfd1 branchmap: use revbranchcache when updating branch map
Mads Kiilerich <madski@unity3d.com>
parents: 23512
diff changeset
   125
  .hg/cache/rbc-revs-v1
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   126
  .hg/dirstate
33427
1bdafe1111ce tests: add extra output for fsmonitor at checking under .hg
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27192
diff changeset
   127
  .hg/fsmonitor.state (fsmonitor !)
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   128
  .hg/last-message.txt
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   129
  .hg/requires
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   130
  .hg/store
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   131
  .hg/store/00changelog.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   132
  .hg/store/00manifest.i
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   133
  .hg/store/data
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   134
  .hg/store/data/tst.d.hg
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   135
  .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
   136
  .hg/store/phaseroots
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   137
  .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
   138
  .hg/store/undo.backupfiles
15455
c6f87bdab2a1 phases: add rollback support
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 15447
diff changeset
   139
  .hg/store/undo.phaseroots
26998
4414d500604f localrepo: put bookmark move following commit in one transaction
Laurent Charignon <lcharignon@fb.com>
parents: 26587
diff changeset
   140
  .hg/undo.backup.dirstate
14266
89e7d35e0ef0 fix bookmarks rollback behavior
Alexander Solovyov <alexander@solovyov.net>
parents: 13389
diff changeset
   141
  .hg/undo.bookmarks
11865
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   142
  .hg/undo.branch
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   143
  .hg/undo.desc
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   144
  .hg/undo.dirstate
400aa8f28f6b tests: unify test-fncache
Adrian Buehlmann <adrian@cadifra.com>
parents: 8721
diff changeset
   145
  $ 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
   146
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   147
Encoding of reserved / long paths in the store
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   148
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   149
  $ hg init r2
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   150
  $ cd r2
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   151
  $ cat <<EOF > .hg/hgrc
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   152
  > [ui]
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   153
  > portablefilenames = ignore
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   154
  > EOF
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   155
17748
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   156
  $ hg import -q --bypass - <<EOF
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   157
  > # HG changeset patch
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   158
  > # User test
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   159
  > # Date 0 0
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   160
  > # Node ID 1c7a2f7cb77be1a0def34e4c7cabc562ad98fbd7
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   161
  > # Parent  0000000000000000000000000000000000000000
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   162
  > 1
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   163
  > 
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   164
  > 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
   165
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   166
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   167
  > +++ 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
   168
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   169
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   170
  > 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
   171
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   172
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   173
  > +++ 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
   174
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   175
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   176
  > 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
   177
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   178
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   179
  > +++ b/Project Planning/Resources/AnotherLongDirectoryName/Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt	
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   180
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   181
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   182
  > 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
   183
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   184
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   185
  > +++ 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
   186
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   187
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   188
  > 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
   189
  > new file mode 100644
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   190
  > --- /dev/null
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   191
  > +++ 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
   192
  > @@ -0,0 +1,1 @@
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   193
  > +foo
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   194
  > EOF
49f759636aaf test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 17710
diff changeset
   195
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   196
  $ find .hg/store -name *.i  | sort
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   197
  .hg/store/00changelog.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   198
  .hg/store/00manifest.i
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   199
  .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
   200
  .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
   201
  .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
   202
  .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
   203
  .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
   204
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   205
  $ cd ..
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   206
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   207
Aborting lock does not prevent fncache writes
17710
95d29533e2ee test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com>
parents: 15886
diff changeset
   208
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   209
  $ cat > exceptionext.py <<EOF
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   210
  > from __future__ import absolute_import
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   211
  > import os
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   212
  > from mercurial import commands, error, extensions
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   213
  > 
26497
ca778cbe94f3 test-fncache: use args/kwargs for lock wrapper
Siddharth Agarwal <sid0@fb.com>
parents: 26475
diff changeset
   214
  > def lockexception(orig, vfs, lockname, wait, releasefn, *args, **kwargs):
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   215
  >     def releasewrap():
27168
8a829fc84bb3 test-fncache: ensure lock doesn't look held to __del__
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   216
  >         l.held = False # ensure __del__ is a noop
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26497
diff changeset
   217
  >         raise error.Abort("forced lock failure")
27168
8a829fc84bb3 test-fncache: ensure lock doesn't look held to __del__
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   218
  >     l = orig(vfs, lockname, wait, releasewrap, *args, **kwargs)
8a829fc84bb3 test-fncache: ensure lock doesn't look held to __del__
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
   219
  >     return l
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   220
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   221
  > def reposetup(ui, repo):
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   222
  >     extensions.wrapfunction(repo, '_lock', lockexception)
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   223
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   224
  > cmdtable = {}
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   225
  > 
27192
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   226
  > # wrap "commit" command to prevent wlock from being '__del__()'-ed
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   227
  > # at the end of dispatching (for intentional "forced lcok failure")
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   228
  > def commitwrap(orig, ui, repo, *pats, **opts):
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   229
  >     repo = repo.unfiltered() # to use replaced repo._lock certainly
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   230
  >     wlock = repo.wlock()
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   231
  >     try:
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   232
  >         return orig(ui, repo, *pats, **opts)
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   233
  >     finally:
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   234
  >         # multiple 'relase()' is needed for complete releasing wlock,
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   235
  >         # because "forced" abort at last releasing store lock
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   236
  >         # prevents wlock from being released at same 'lockmod.release()'
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   237
  >         for i in range(wlock.held):
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   238
  >             wlock.release()
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   239
  > 
a01d3d32b53a commands: make commit acquire locks before processing (issue4368)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 27168
diff changeset
   240
  > def extsetup(ui):
36493
5b5cc44b2cdc py3: add a b'' prefix in tests/test-fncache.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35393
diff changeset
   241
  >     extensions.wrapcommand(commands.table, b"commit", commitwrap)
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   242
  > EOF
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   243
  $ extpath=`pwd`/exceptionext.py
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   244
  $ hg init fncachetxn
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   245
  $ cd fncachetxn
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   246
  $ 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
   247
  $ touch y
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   248
  $ hg ci -qAm y
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   249
  abort: forced lock failure
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   250
  [255]
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   251
  $ cat .hg/store/fncache
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   252
  data/y.i
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   253
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   254
Aborting transaction prevents fncache change
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   255
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   256
  $ cat > ../exceptionext.py <<EOF
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   257
  > from __future__ import absolute_import
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   258
  > import os
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   259
  > from mercurial import commands, error, extensions, localrepo
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   260
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   261
  > 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
   262
  >     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
   263
  >     def fail(tr):
36662
3715a5ffcf92 tests: fix bytes literals in test-fncache.t
Augie Fackler <augie@google.com>
parents: 36493
diff changeset
   264
  >         raise error.Abort(b"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
   265
  >     # zzz prefix to ensure it sorted after store.write
36662
3715a5ffcf92 tests: fix bytes literals in test-fncache.t
Augie Fackler <augie@google.com>
parents: 36493
diff changeset
   266
  >     tr.addfinalize(b'zzz-forcefails', fail)
23510
065c0334846f fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23063
diff changeset
   267
  >     return tr
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   268
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   269
  > def uisetup(ui):
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   270
  >     extensions.wrapfunction(
36662
3715a5ffcf92 tests: fix bytes literals in test-fncache.t
Augie Fackler <augie@google.com>
parents: 36493
diff changeset
   271
  >         localrepo.localrepository, b'transaction', wrapper)
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   272
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   273
  > cmdtable = {}
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   274
  > 
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   275
  > EOF
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   276
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   277
Clean cached version
21760
a7f5967ff644 tests: ignore missing file with PYTHONDONTWRITEBYTECODE (issue4239)
Matt Mackall <mpm@selenic.com>
parents: 20883
diff changeset
   278
  $ rm -f "${extpath}c"
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   279
  $ rm -Rf "`dirname $extpath`/__pycache__"
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   280
20883
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   281
  $ touch z
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   282
  $ hg ci -qAm z
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   283
  transaction abort!
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   284
  rollback completed
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   285
  abort: forced transaction failure
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   286
  [255]
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   287
  $ cat .hg/store/fncache
cd443c7589cc fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com>
parents: 20185
diff changeset
   288
  data/y.i
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   289
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   290
Aborted transactions can be recovered later
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   291
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   292
  $ cat > ../exceptionext.py <<EOF
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   293
  > from __future__ import absolute_import
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   294
  > import os
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   295
  > from mercurial import (
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   296
  >   commands,
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   297
  >   error,
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   298
  >   extensions,
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   299
  >   localrepo,
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   300
  >   transaction,
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   301
  > )
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   302
  > 
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   303
  > 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
   304
  >     tr = orig(self, *args, **kwargs)
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   305
  >     def fail(tr):
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26497
diff changeset
   306
  >         raise error.Abort("forced transaction failure")
23512
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   307
  >     # 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
   308
  >     tr.addfinalize('zzz-forcefails', fail)
0ff6b65afeb0 transaction: remove the redundant 'onclose' mechanism
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23510
diff changeset
   309
  >     return tr
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   310
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   311
  > def abortwrapper(orig, self, *args, **kwargs):
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26497
diff changeset
   312
  >     raise error.Abort("forced transaction failure")
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   313
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   314
  > def uisetup(ui):
33956
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   315
  >     extensions.wrapfunction(localrepo.localrepository, 'transaction',
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   316
  >                             trwrapper)
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   317
  >     extensions.wrapfunction(transaction.transaction, '_abort',
1be228b96030 tests: update test-fncache to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 33607
diff changeset
   318
  >                             abortwrapper)
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   319
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   320
  > cmdtable = {}
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   321
  > 
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   322
  > EOF
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   323
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   324
Clean cached versions
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   325
  $ rm -f "${extpath}c"
33607
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   326
  $ rm -Rf "`dirname $extpath`/__pycache__"
6c142f279625 pypy: fix failing test files with Pypy5.6.0
Boris Feld <boris.feld@octobus.net>
parents: 33427
diff changeset
   327
23063
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   328
  $ hg up -q 1
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   329
  $ touch z
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   330
  $ hg ci -qAm z 2>/dev/null
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   331
  [255]
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   332
  $ cat .hg/store/fncache | sort
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   333
  data/y.i
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   334
  data/z.i
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   335
  $ hg recover
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   336
  rolling back interrupted transaction
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   337
  checking changesets
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   338
  checking manifests
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   339
  crosschecking files in changesets and manifests
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   340
  checking files
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   341
  1 files, 1 changesets, 1 total revisions
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   342
  $ cat .hg/store/fncache
cd86a6707159 transactions: fix hg recover with fncache backups
Durham Goode <durham@fb.com>
parents: 21760
diff changeset
   343
  data/y.i
25652
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   344
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   345
  $ cd ..
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   346
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   347
debugrebuildfncache does nothing unless repo has fncache requirement
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   348
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   349
  $ hg --config format.usefncache=false init nofncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   350
  $ cd nofncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   351
  $ hg debugrebuildfncache
25874
3e84f40232c7 repair: fix typo in warning message
Wagner Bruna <wbruna@yahoo.com>
parents: 25653
diff changeset
   352
  (not rebuilding fncache because repository does not support fncache)
25652
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   353
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   354
  $ cd ..
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   355
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   356
debugrebuildfncache works on empty repository
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   357
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   358
  $ hg init empty
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   359
  $ cd empty
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   360
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   361
  fncache already up to date
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   362
  $ cd ..
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   363
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   364
debugrebuildfncache on an up to date repository no-ops
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   365
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   366
  $ hg init repo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   367
  $ cd repo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   368
  $ echo initial > foo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   369
  $ echo initial > .bar
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   370
  $ hg commit -A -m initial
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   371
  adding .bar
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   372
  adding foo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   373
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   374
  $ cat .hg/store/fncache | sort
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   375
  data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   376
  data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   377
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   378
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   379
  fncache already up to date
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   380
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   381
debugrebuildfncache restores deleted fncache file
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   382
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   383
  $ rm -f .hg/store/fncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   384
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   385
  adding data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   386
  adding data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   387
  2 items added, 0 removed from fncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   388
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   389
  $ cat .hg/store/fncache | sort
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   390
  data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   391
  data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   392
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   393
Rebuild after rebuild should no-op
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   394
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   395
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   396
  fncache already up to date
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   397
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   398
A single missing file should get restored, an extra file should be removed
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   399
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   400
  $ cat > .hg/store/fncache << EOF
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   401
  > data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   402
  > data/bad-entry.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   403
  > EOF
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   404
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   405
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   406
  removing data/bad-entry.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   407
  adding data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   408
  1 items added, 1 removed from fncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   409
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   410
  $ cat .hg/store/fncache | sort
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   411
  data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   412
  data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   413
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   414
  $ cd ..
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   415
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   416
Try a simple variation without dotencode to ensure fncache is ignorant of encoding
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   417
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   418
  $ hg --config format.dotencode=false init nodotencode
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   419
  $ cd nodotencode
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   420
  $ echo initial > foo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   421
  $ echo initial > .bar
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   422
  $ hg commit -A -m initial
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   423
  adding .bar
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   424
  adding foo
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   425
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   426
  $ cat .hg/store/fncache | sort
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   427
  data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   428
  data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   429
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   430
  $ rm .hg/store/fncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   431
  $ hg debugrebuildfncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   432
  adding data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   433
  adding data/foo.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   434
  2 items added, 0 removed from fncache
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   435
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   436
  $ cat .hg/store/fncache | sort
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   437
  data/.bar.i
2882d6886919 repair: add functionality to rebuild fncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
   438
  data/foo.i