D3066: tests: teach test-fncache.t about the simple store
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Wed Apr 4 01:57:34 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
Despite the size, this is pretty straightforward.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3066
AFFECTED FILES
tests/test-fncache.t
CHANGE DETAILS
diff --git a/tests/test-fncache.t b/tests/test-fncache.t
--- a/tests/test-fncache.t
+++ b/tests/test-fncache.t
@@ -7,7 +7,9 @@
adding a
$ hg ci -m first
$ cat .hg/store/fncache | sort
- data/a.i
+ data/a.i (reporevlogstore !)
+ data/a/f62022d3d590043fa311a6f49c238b13c9d12709 (reposimplestore !)
+ data/a/index (reposimplestore !)
Testing a.i/b:
@@ -17,8 +19,12 @@
adding a.i/b
$ hg ci -m second
$ cat .hg/store/fncache | sort
- data/a.i
- data/a.i.hg/b.i
+ data/a.i (reporevlogstore !)
+ data/a.i.hg/b.i (reporevlogstore !)
+ data/a.i.hg/b/87213410d500fe45662db2a54f759a46c27192bb (reposimplestore !)
+ data/a.i.hg/b/index (reposimplestore !)
+ data/a/f62022d3d590043fa311a6f49c238b13c9d12709 (reposimplestore !)
+ data/a/index (reposimplestore !)
Testing a.i.hg/c:
@@ -28,9 +34,15 @@
adding a.i.hg/c
$ hg ci -m third
$ cat .hg/store/fncache | sort
- data/a.i
- data/a.i.hg.hg/c.i
- data/a.i.hg/b.i
+ data/a.i (reporevlogstore !)
+ data/a.i.hg.hg/c.i (reporevlogstore !)
+ data/a.i.hg/b.i (reporevlogstore !)
+ data/a.i.hg.hg/c/d81723aa78f2dd2d77884d165313984fcc9e5893 (reposimplestore !)
+ data/a.i.hg.hg/c/index (reposimplestore !)
+ data/a.i.hg/b/87213410d500fe45662db2a54f759a46c27192bb (reposimplestore !)
+ data/a.i.hg/b/index (reposimplestore !)
+ data/a/f62022d3d590043fa311a6f49c238b13c9d12709 (reposimplestore !)
+ data/a/index (reposimplestore !)
Testing verify:
@@ -48,20 +60,34 @@
checking manifests
crosschecking files in changesets and manifests
checking files
- warning: revlog 'data/a.i' not in fncache!
- warning: revlog 'data/a.i.hg/c.i' not in fncache!
- warning: revlog 'data/a.i/b.i' not in fncache!
+ warning: revlog 'data/a.i' not in fncache! (reporevlogstore !)
+ warning: revlog 'data/a.i.hg/c.i' not in fncache! (reporevlogstore !)
+ warning: revlog 'data/a.i/b.i' not in fncache! (reporevlogstore !)
+ warning: revlog 'data/a/f62022d3d590043fa311a6f49c238b13c9d12709' not in fncache! (reposimplestore !)
+ warning: revlog 'data/a/index' not in fncache! (reposimplestore !)
+ warning: revlog 'data/a.i.hg/c/index' not in fncache! (reposimplestore !)
+ warning: revlog 'data/a.i.hg/c/d81723aa78f2dd2d77884d165313984fcc9e5893' not in fncache! (reposimplestore !)
+ warning: revlog 'data/a.i/b/87213410d500fe45662db2a54f759a46c27192bb' not in fncache! (reposimplestore !)
+ warning: revlog 'data/a.i/b/index' not in fncache! (reposimplestore !)
3 files, 3 changesets, 3 total revisions
- 3 warnings encountered!
+ 3 warnings encountered! (reporevlogstore !)
+ 6 warnings encountered! (reposimplestore !)
hint: run "hg debugrebuildfncache" to recover from corrupt fncache
Follow the hint to make sure it works
$ hg debugrebuildfncache
- adding data/a.i
- adding data/a.i.hg/c.i
- adding data/a.i/b.i
- 3 items added, 0 removed from fncache
+ adding data/a.i (reporevlogstore !)
+ adding data/a.i.hg/c.i (reporevlogstore !)
+ adding data/a.i/b.i (reporevlogstore !)
+ adding data/a.i.hg/c/d81723aa78f2dd2d77884d165313984fcc9e5893 (reposimplestore !)
+ adding data/a.i.hg/c/index (reposimplestore !)
+ adding data/a.i/b/87213410d500fe45662db2a54f759a46c27192bb (reposimplestore !)
+ adding data/a.i/b/index (reposimplestore !)
+ adding data/a/f62022d3d590043fa311a6f49c238b13c9d12709 (reposimplestore !)
+ adding data/a/index (reposimplestore !)
+ 3 items added, 0 removed from fncache (reporevlogstore !)
+ 6 items added, 0 removed from fncache (reposimplestore !)
$ hg verify
checking changesets
@@ -90,7 +116,10 @@
.hg/cache/rbc-revs-v1
.hg/data
.hg/data/tst.d.hg
- .hg/data/tst.d.hg/foo.i
+ .hg/data/tst.d.hg/foo.i (reporevlogstore !)
+ .hg/data/tst.d.hg/foo (reposimplestore !)
+ .hg/data/tst.d.hg/foo/2ed2a3912a0b24502043eae84ee4b279c18b90dd (reposimplestore !)
+ .hg/data/tst.d.hg/foo/index (reposimplestore !)
.hg/dirstate
.hg/fsmonitor.state (fsmonitor !)
.hg/last-message.txt
@@ -130,7 +159,10 @@
.hg/store/00manifest.i
.hg/store/data
.hg/store/data/tst.d.hg
- .hg/store/data/tst.d.hg/_foo.i
+ .hg/store/data/tst.d.hg/_foo.i (reporevlogstore !)
+ .hg/store/data/tst.d.hg/_foo (reposimplestore !)
+ .hg/store/data/tst.d.hg/_foo/2ed2a3912a0b24502043eae84ee4b279c18b90dd (reposimplestore !)
+ .hg/store/data/tst.d.hg/_foo/index (reposimplestore !)
.hg/store/phaseroots
.hg/store/undo
.hg/store/undo.backupfiles
@@ -194,11 +226,11 @@
$ find .hg/store -name *.i | sort
.hg/store/00changelog.i
.hg/store/00manifest.i
- .hg/store/data/bla.aux/pr~6e/_p_r_n/lpt/co~6d3/nu~6c/coma/foo._n_u_l/normal.c.i
- .hg/store/dh/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxx168e07b38e65eff86ab579afaaa8e30bfbe0f35f.i
- .hg/store/dh/au~78/second/x.prn/fourth/fi~3afth/sixth/seventh/eighth/nineth/tenth/loremia20419e358ddff1bf8751e38288aff1d7c32ec05.i
- .hg/store/dh/enterpri/openesba/contrib-/corba-bc/netbeans/wsdlexte/src/main/java/org.net7018f27961fdf338a598a40c4683429e7ffb9743.i
- .hg/store/dh/project_/resource/anotherl/followed/andanoth/andthenanextremelylongfilename0d8e1f4187c650e2f1fdca9fd90f786bc0976b6b.i
+ .hg/store/data/bla.aux/pr~6e/_p_r_n/lpt/co~6d3/nu~6c/coma/foo._n_u_l/normal.c.i (reporevlogstore !)
+ .hg/store/dh/12345678/12345678/12345678/12345678/12345678/12345678/12345678/12345/xxxxxx168e07b38e65eff86ab579afaaa8e30bfbe0f35f.i (reporevlogstore !)
+ .hg/store/dh/au~78/second/x.prn/fourth/fi~3afth/sixth/seventh/eighth/nineth/tenth/loremia20419e358ddff1bf8751e38288aff1d7c32ec05.i (reporevlogstore !)
+ .hg/store/dh/enterpri/openesba/contrib-/corba-bc/netbeans/wsdlexte/src/main/java/org.net7018f27961fdf338a598a40c4683429e7ffb9743.i (reporevlogstore !)
+ .hg/store/dh/project_/resource/anotherl/followed/andanoth/andthenanextremelylongfilename0d8e1f4187c650e2f1fdca9fd90f786bc0976b6b.i (reporevlogstore !)
$ cd ..
@@ -246,8 +278,10 @@
$ hg ci -qAm y
abort: forced lock failure
[255]
- $ cat .hg/store/fncache
- data/y.i
+ $ cat .hg/store/fncache | sort
+ data/y.i (reporevlogstore !)
+ data/y/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
+ data/y/index (reposimplestore !)
Aborting transaction prevents fncache change
@@ -282,8 +316,10 @@
rollback completed
abort: forced transaction failure
[255]
- $ cat .hg/store/fncache
- data/y.i
+ $ cat .hg/store/fncache | sort
+ data/y.i (reporevlogstore !)
+ data/y/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
+ data/y/index (reposimplestore !)
Aborted transactions can be recovered later
@@ -328,17 +364,22 @@
$ hg ci -qAm z 2>/dev/null
[255]
$ cat .hg/store/fncache | sort
- data/y.i
- data/z.i
+ data/y.i (reporevlogstore !)
+ data/z.i (reporevlogstore !)
+ data/y/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
+ data/y/index (reposimplestore !)
+
$ hg recover
rolling back interrupted transaction
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
- $ cat .hg/store/fncache
- data/y.i
+ $ cat .hg/store/fncache | sort
+ data/y.i (reporevlogstore !)
+ data/y/b80de5d138758541c5f05265ad144ab9fa86d1db (reposimplestore !)
+ data/y/index (reposimplestore !)
$ cd ..
@@ -370,31 +411,45 @@
adding foo
$ cat .hg/store/fncache | sort
- data/.bar.i
- data/foo.i
+ data/.bar.i (reporevlogstore !)
+ data/foo.i (reporevlogstore !)
+ data/.bar/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ data/.bar/index (reposimplestore !)
+ data/foo/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ data/foo/index (reposimplestore !)
$ hg debugrebuildfncache
fncache already up to date
debugrebuildfncache restores deleted fncache file
$ rm -f .hg/store/fncache
$ hg debugrebuildfncache
- adding data/.bar.i
- adding data/foo.i
- 2 items added, 0 removed from fncache
+ adding data/.bar.i (reporevlogstore !)
+ adding data/foo.i (reporevlogstore !)
+ adding data/.bar/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ adding data/.bar/index (reposimplestore !)
+ adding data/foo/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ adding data/foo/index (reposimplestore !)
+ 2 items added, 0 removed from fncache (reporevlogstore !)
+ 4 items added, 0 removed from fncache (reposimplestore !)
$ cat .hg/store/fncache | sort
- data/.bar.i
- data/foo.i
+ data/.bar.i (reporevlogstore !)
+ data/foo.i (reporevlogstore !)
+ data/.bar/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ data/.bar/index (reposimplestore !)
+ data/foo/bb212e613448bd83ecb63be18e3e59f509e15664 (reposimplestore !)
+ data/foo/index (reposimplestore !)
Rebuild after rebuild should no-op
$ hg debugrebuildfncache
fncache already up to date
A single missing file should get restored, an extra file should be removed
+#if reporevlogstore
$ cat > .hg/store/fncache << EOF
> data/foo.i
> data/bad-entry.i
@@ -408,11 +463,35 @@
$ cat .hg/store/fncache | sort
data/.bar.i
data/foo.i
+#endif
+
+#if reposimplestore
+ $ cat > .hg/store/fncache << EOF
+ > data/.bar/index
+ > data/.bar/bb212e613448bd83ecb63be18e3e59f509e15664
+ > data/bad-entry
+ > EOF
+
+ $ hg debugrebuildfncache
+ removing data/bad-entry
+ adding data/foo/bb212e613448bd83ecb63be18e3e59f509e15664
+ adding data/foo/index
+ 2 items added, 1 removed from fncache
+
+ $ cat .hg/store/fncache | sort
+ data/.bar/bb212e613448bd83ecb63be18e3e59f509e15664
+ data/.bar/index
+ data/foo/bb212e613448bd83ecb63be18e3e59f509e15664
+ data/foo/index
+
+#endif
$ cd ..
Try a simple variation without dotencode to ensure fncache is ignorant of encoding
+#if reporevlogstore
+
$ hg --config format.dotencode=false init nodotencode
$ cd nodotencode
$ echo initial > foo
@@ -434,3 +513,5 @@
$ cat .hg/store/fncache | sort
data/.bar.i
data/foo.i
+
+#endif
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list