[PATCH 3 of 4 v4] treemanifests: fix local clone
Martin von Zweigbergk
martinvonz at google.com
Fri Feb 5 16:17:25 EST 2016
# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1454463077 28800
# Tue Feb 02 17:31:17 2016 -0800
# Node ID 30acd1be0f83c981cf90f1b03666910f6a2b39d7
# Parent 80830c289c9268d1c353ff2671a34a720143c7f2
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.
diff --git a/mercurial/store.py b/mercurial/store.py
--- a/mercurial/store.py
+++ b/mercurial/store.py
@@ -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()])
diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t
--- a/tests/test-treemanifest.t
+++ b/tests/test-treemanifest.t
@@ -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
More information about the Mercurial-devel
mailing list