[PATCH 6 of 7] activate the light-weight copy feature

Sune Foldager cryo at cyanite.org
Tue Sep 14 04:56:35 CDT 2010


# HG changeset patch
# User Sune Foldager <cryo at cyanite.org>
# Date 1282914720 -7200
# Node ID 6c95703db2ceff035bbcece54aa984da493e67f3
# Parent  c9ecf6d42dbaf1624833591c1c580ba93b0afa04
activate the light-weight copy feature

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -21,7 +21,7 @@
 
 class localrepository(repo.repository):
     capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey'))
-    supported = set('revlogv1 store fncache shared parentdelta'.split())
+    supported = set('revlogv1 store fncache shared parentdelta lwcopy'.split())
 
     def __init__(self, baseui, path=None, create=0):
         repo.repository.__init__(self)
@@ -45,7 +45,7 @@
                 if not os.path.exists(path):
                     util.makedirs(path)
                 os.mkdir(self.path)
-                requirements = ["revlogv1"]
+                requirements = ["revlogv1", "lwcopy"]
                 if self.ui.configbool('format', 'usestore', True):
                     os.mkdir(os.path.join(self.path, "store"))
                     requirements.append("store")
@@ -93,7 +93,7 @@
         self.sopener = self.store.opener
         self.sjoin = self.store.join
         self.opener.createmode = self.store.createmode
-        self.sopener.options = {}
+        self.sopener.options = {"lwcopy": "lwcopy" in requirements}
         if 'parentdelta' in requirements:
             self.sopener.options['parentdelta'] = 1
 
@@ -808,6 +808,8 @@
             self.ui.debug(" %s: copy %s:%s\n" % (fname, cfname, hex(crev)))
             meta["copy"] = cfname
             meta["copyrev"] = hex(crev)
+            if self.sopener.options["lwcopy"]:
+                meta["copylw"] = ''
             fparent1, fparent2 = nullid, newfparent
         elif fparent2 != nullid:
             # is one parent an ancestor of the other?
diff --git a/tests/test-bundle-r.t b/tests/test-bundle-r.t
--- a/tests/test-bundle-r.t
+++ b/tests/test-bundle-r.t
@@ -34,10 +34,10 @@
        3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
   $ hg debugindex .hg/store/data/adifferentfile.i
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      75      0       7 2565f3199a74 000000000000 000000000000
+       0         0      76      0       7 2565f3199a74 000000000000 000000000000
   $ hg debugindex .hg/store/data/anotherfile.i
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      75      0       8 2565f3199a74 000000000000 000000000000
+       0         0      76      0       8 2565f3199a74 000000000000 000000000000
   $ hg debugindex .hg/store/data/fred.i
      rev    offset  length   base linkrev nodeid       p1           p2
        0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
diff --git a/tests/test-clone-r.t b/tests/test-clone-r.t
--- a/tests/test-clone-r.t
+++ b/tests/test-clone-r.t
@@ -46,11 +46,11 @@
 
   $ hg debugindex .hg/store/data/adifferentfile.i
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      75      0       7 2565f3199a74 000000000000 000000000000
+       0         0      76      0       7 2565f3199a74 000000000000 000000000000
 
   $ hg debugindex .hg/store/data/anotherfile.i
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      75      0       8 2565f3199a74 000000000000 000000000000
+       0         0      76      0       8 2565f3199a74 000000000000 000000000000
 
   $ hg debugindex .hg/store/data/fred.i
      rev    offset  length   base linkrev nodeid       p1           p2
diff --git a/tests/test-convert-hg-source.out b/tests/test-convert-hg-source.out
--- a/tests/test-convert-hg-source.out
+++ b/tests/test-convert-hg-source.out
@@ -39,17 +39,17 @@
 4 init
 ignoring: data/b.i at 1e88685f5dde: no match found
 3 changeall
+ignoring: data/b.i at 1e88685f5dde: no node
 2 changebagain
 1 merge
 0 moveb
+ignoring: data/b.i at 0cf8bc74fd2b: no node
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
-3 files, 5 changesets, 5 total revisions
+1 files, 5 changesets, 2 total revisions
 % manifest -r 0
 a
 % manifest -r tip
 a
-c
-d
diff --git a/tests/test-copy.t b/tests/test-copy.t
--- a/tests/test-copy.t
+++ b/tests/test-copy.t
@@ -49,7 +49,7 @@
 
 this should show a revision linked to changeset 0
 
-  $ hg debugindex .hg/store/data/a.i
+  $ hg debugindex a
      rev    offset  length   base linkrev nodeid       p1           p2
        0         0       3      0       0 b789fdd96dc2 000000000000 000000000000
 
@@ -65,18 +65,18 @@
 
 this should show a revision linked to changeset 1
 
-  $ hg debugindex .hg/store/data/b.i
+  $ hg debugindex b
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      65      0       1 37d9b5d994ea 000000000000 000000000000
+       0         0      72      0       1 37d9b5d994ea 000000000000 000000000000
 
 this should show the rename information in the metadata
 
-  $ hg debugdata .hg/store/data/b.d 0 | head -3 | tail -2
+  $ hg debugdata b 0 | head -3 | tail -2
   copy: a
   copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
 
   $ $TESTDIR/md5sum.py .hg/store/data/b.i
-  4999f120a3b88713bbefddd195cf5133  .hg/store/data/b.i
+  f73371270913f0cf582fcfb81ce2c723  .hg/store/data/b.i
   $ hg cat b > bsum
   $ $TESTDIR/md5sum.py bsum
   60b725f10c9c85c70d97880dfe8191b3  bsum
diff --git a/tests/test-copy2.t b/tests/test-copy2.t
--- a/tests/test-copy2.t
+++ b/tests/test-copy2.t
@@ -69,9 +69,9 @@
 should show no parents for tip
   $ hg debugindex .hg/store/data/bar.i
      rev    offset  length   base linkrev nodeid       p1           p2
-       0         0      69      0       1 7711d36246cc 000000000000 000000000000
-       1        69       6      1       2 bdf70a2b8d03 7711d36246cc 000000000000
-       2        75      81      1       3 b2558327ea8d 000000000000 000000000000
+       0         0      74      0       1 7711d36246cc 000000000000 000000000000
+       1        74       6      1       2 bdf70a2b8d03 7711d36246cc 000000000000
+       2        80      74      2       3 b2558327ea8d 000000000000 000000000000
 should match
   $ hg debugindex .hg/store/data/foo.i
      rev    offset  length   base linkrev nodeid       p1           p2
diff --git a/tests/test-http-clone-r.out b/tests/test-http-clone-r.out
--- a/tests/test-http-clone-r.out
+++ b/tests/test-http-clone-r.out
@@ -8,9 +8,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 2565f3199a74 000000000000 000000000000
+     0         0      76      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 2565f3199a74 000000000000 000000000000
+     0         0      76      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
diff --git a/tests/test-init.t b/tests/test-init.t
--- a/tests/test-init.t
+++ b/tests/test-init.t
@@ -40,6 +40,7 @@
   store created
   00changelog.i created
   revlogv1
+  lwcopy
   store
   fncache
   $ echo this > local/foo
@@ -51,6 +52,7 @@
   $ hg --config format.usestore=false init old
   $ checknewrepo old
   revlogv1
+  lwcopy
 
 creating repo with format.usefncache=false
 
@@ -59,6 +61,7 @@
   store created
   00changelog.i created
   revlogv1
+  lwcopy
   store
 
 test failure
@@ -152,5 +155,6 @@
   store created
   00changelog.i created
   revlogv1
+  lwcopy
   store
   fncache
diff --git a/tests/test-merge-commit.out b/tests/test-merge-commit.out
--- a/tests/test-merge-commit.out
+++ b/tests/test-merge-commit.out
@@ -8,8 +8,8 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 d35118874825 000000000000 000000000000
-     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     0         0      84      0       2 d35118874825 000000000000 000000000000
+     1        84      81      1       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
@@ -39,10 +39,10 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 d35118874825 000000000000 000000000000
-     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
-     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
-     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
+     0         0      84      0       2 d35118874825 000000000000 000000000000
+     1        84      81      1       3 5345f5ab8abd 000000000000 d35118874825
+     2       165       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       172      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
 
 
 requesting all changes
@@ -60,7 +60,7 @@
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0      77      0       2 d35118874825 000000000000 000000000000
-     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     1        77      81      1       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
@@ -91,6 +91,6 @@
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0      77      0       2 d35118874825 000000000000 000000000000
-     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
-     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
-     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
+     1        77      81      1       3 5345f5ab8abd 000000000000 d35118874825
+     2       158       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       165      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
diff --git a/tests/test-push-r.out b/tests/test-push-r.out
--- a/tests/test-push-r.out
+++ b/tests/test-push-r.out
@@ -7,9 +7,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 2565f3199a74 000000000000 000000000000
+     0         0      76      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 2565f3199a74 000000000000 000000000000
+     0         0      76      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
diff --git a/tests/test-rename-merge1.out b/tests/test-rename-merge1.out
--- a/tests/test-rename-merge1.out
+++ b/tests/test-rename-merge1.out
@@ -41,6 +41,6 @@
 C c2
 blahblah
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      67      0       1 57eacc201a7f 000000000000 000000000000
-     1        67      72      1       3 4727ba907962 000000000000 57eacc201a7f
+     0         0      72      0       1 57eacc201a7f 000000000000 000000000000
+     1        72      72      1       3 4727ba907962 000000000000 57eacc201a7f
 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
diff --git a/tests/test-ssh-clone-r.out b/tests/test-ssh-clone-r.out
--- a/tests/test-ssh-clone-r.out
+++ b/tests/test-ssh-clone-r.out
@@ -8,9 +8,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 2565f3199a74 000000000000 000000000000
+     0         0      76      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 2565f3199a74 000000000000 000000000000
+     0         0      76      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2


More information about the Mercurial-devel mailing list