treemanifests: fix local clone
When doing a local clone with treemanifests, the .hg/store/meta/
directory currently does not get copied. To fix it, all we need to do
is to add it to the list of directories to copy.
--- a/mercurial/store.py Wed Feb 03 15:35:23 2016 -0800
+++ b/mercurial/store.py Tue Feb 02 17:31:17 2016 -0800
@@ -290,7 +290,7 @@
mode = None
return mode
-_data = ('data 00manifest.d 00manifest.i 00changelog.d 00changelog.i'
+_data = ('data meta 00manifest.d 00manifest.i 00changelog.d 00changelog.i'
' phaseroots obsstore')
class basicstore(object):
@@ -504,7 +504,7 @@
raise
def copylist(self):
- d = ('data dh fncache phaseroots obsstore'
+ d = ('data meta dh fncache phaseroots obsstore'
' 00manifest.d 00manifest.i 00changelog.d 00changelog.i')
return (['requires', '00changelog.i'] +
['store/' + f for f in d.split()])
--- a/tests/test-treemanifest.t Wed Feb 03 15:35:23 2016 -0800
+++ b/tests/test-treemanifest.t Tue Feb 02 17:31:17 2016 -0800
@@ -513,3 +513,56 @@
checking files
8 files, 3 changesets, 10 total revisions
$ cd ..
+
+Create clones using old repo formats to use in later tests
+ $ hg clone --config format.usestore=False \
+ > --config experimental.changegroup3=True \
+ > http://localhost:$HGPORT2 deeprepo-basicstore
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 3 changesets with 10 changes to 8 files
+ updating to branch default
+ 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ grep store deeprepo-basicstore/.hg/requires
+ [1]
+ $ hg clone --config format.usefncache=False \
+ > --config experimental.changegroup3=True \
+ > http://localhost:$HGPORT2 deeprepo-encodedstore
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 3 changesets with 10 changes to 8 files
+ updating to branch default
+ 8 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ grep fncache deeprepo-encodedstore/.hg/requires
+ [1]
+
+Local clone with basicstore
+ $ hg clone -U deeprepo-basicstore local-clone-basicstore
+ $ hg -R local-clone-basicstore verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 8 files, 3 changesets, 10 total revisions
+
+Local clone with encodedstore
+ $ hg clone -U deeprepo-encodedstore local-clone-encodedstore
+ $ hg -R local-clone-encodedstore verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 8 files, 3 changesets, 10 total revisions
+
+Local clone with fncachestore
+ $ hg clone -U deeprepo local-clone-fncachestore
+ $ hg -R local-clone-fncachestore verify
+ checking changesets
+ checking manifests
+ crosschecking files in changesets and manifests
+ checking files
+ 8 files, 3 changesets, 10 total revisions