changeset 2147:b7225adb2e0b

merge with crew.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Thu, 27 Apr 2006 22:10:45 -0700
parents eb1ed410aa34 (current diff) 3053fc33f545 (diff)
children c72e618c1204
files
diffstat 25 files changed, 81 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -11,7 +11,7 @@ from demandload import demandload
 demandload(globals(), "os time util")
 
 class changelog(revlog):
-    def __init__(self, opener, defversion=0):
+    def __init__(self, opener, defversion=REVLOGV0):
         revlog.__init__(self, opener, "00changelog.i", "00changelog.d",
                         defversion)
 
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2978,7 +2978,7 @@ table = {
           ('a', 'text', None, _('treat all files as text')),
           ('', 'switch-parent', None, _('diff against the second parent'))],
          _('hg export [-a] [-o OUTFILESPEC] REV...')),
-    "forget":
+    "debugforget|forget":
         (forget,
          [('I', 'include', [], _('include names matching the given patterns')),
           ('X', 'exclude', [], _('exclude names matching the given patterns'))],
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -42,7 +42,7 @@ class localrepository(object):
             pass
 
         v = self.ui.revlogopts
-        self.revlogversion = int(v.get('format', 0))
+        self.revlogversion = int(v.get('format', revlog.REVLOGV0))
         flags = 0
         for x in v.get('flags', "").split():
             flags |= revlog.flagstr(x)
@@ -1803,12 +1803,17 @@ class localrepository(object):
         filenodes = {}
         changesets = revisions = files = 0
         errors = [0]
+        warnings = [0]
         neededmanifests = {}
 
         def err(msg):
             self.ui.warn(msg + "\n")
             errors[0] += 1
 
+        def warn(msg):
+            self.ui.warn(msg + "\n")
+            warnings[0] += 1
+
         def checksize(obj, name):
             d = obj.checksize()
             if d[0]:
@@ -1816,6 +1821,17 @@ class localrepository(object):
             if d[1]:
                 err(_("%s index contains %d extra bytes") % (name, d[1]))
 
+        def checkversion(obj, name):
+            if obj.version != revlog.REVLOGV0:
+                if not revlogv1:
+                    warn(_("warning: `%s' uses revlog format 1") % name)
+            elif revlogv1:
+                warn(_("warning: `%s' uses revlog format 0") % name)
+
+        revlogv1 = self.revlogversion != revlog.REVLOGV0
+        self.ui.status(_("repository uses revlog format %d\n") %
+                       (revlogv1 and 1 or 0))
+
         seen = {}
         self.ui.status(_("checking changesets\n"))
         checksize(self.changelog, "changelog")
@@ -1850,6 +1866,7 @@ class localrepository(object):
 
         seen = {}
         self.ui.status(_("checking manifests\n"))
+        checkversion(self.manifest, "manifest")
         checksize(self.manifest, "manifest")
 
         for i in range(self.manifest.count()):
@@ -1914,6 +1931,7 @@ class localrepository(object):
                 err(_("file without name in manifest %s") % short(n))
                 continue
             fl = self.file(f)
+            checkversion(fl, f)
             checksize(fl, f)
 
             nodes = {nullid: 1}
@@ -1962,6 +1980,8 @@ class localrepository(object):
         self.ui.status(_("%d files, %d changesets, %d total revisions\n") %
                        (files, changesets, revisions))
 
+        if warnings[0]:
+            self.ui.warn(_("%d warnings encountered!\n") % warnings[0])
         if errors[0]:
             self.ui.warn(_("%d integrity errors encountered!\n") % errors[0])
             return 1
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -12,7 +12,7 @@ from demandload import *
 demandload(globals(), "bisect array")
 
 class manifest(revlog):
-    def __init__(self, opener, defversion=0):
+    def __init__(self, opener, defversion=REVLOGV0):
         self.mapcache = None
         self.listcache = None
         revlog.__init__(self, opener, "00manifest.i", "00manifest.d",
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -293,7 +293,7 @@ class revlog(object):
     remove data, and can use some simple techniques to avoid the need
     for locking while reading.
     """
-    def __init__(self, opener, indexfile, datafile, defversion=0):
+    def __init__(self, opener, indexfile, datafile, defversion=REVLOGV0):
         """
         create a revlog object
 
@@ -337,7 +337,7 @@ class revlog(object):
                 v = struct.unpack(versionformat, i)[0]
         flags = v & ~0xFFFF
         fmt = v & 0xFFFF
-        if fmt == 0:
+        if fmt == REVLOGV0:
             if flags:
                 raise RevlogError(_("index %s invalid flags %x for format v0" %
                                    (self.indexfile, flags)))
@@ -349,7 +349,7 @@ class revlog(object):
             raise RevlogError(_("index %s invalid format %d" %
                                (self.indexfile, fmt)))
         self.version = v
-        if v == 0:
+        if v == REVLOGV0:
             self.indexformat = indexformatv0
             shaoffset = v0shaoffset
         else:
@@ -369,7 +369,7 @@ class revlog(object):
                 # we've already got the entire data file read in, save it
                 # in the chunk data
                 self.chunkcache = (0, i)
-            if self.version != 0:
+            if self.version != REVLOGV0:
                 e = list(self.index[0])
                 type = self.ngtype(e[0])
                 e[0] = self.offset_type(0, type)
@@ -399,7 +399,7 @@ class revlog(object):
     def ngoffset(self, q):
         if q & 0xFFFF:
             raise RevlogError(_('%s: incompatible revision flag %x') %
-                               (self.indexfile, type))
+                              (self.indexfile, q))
         return long(q >> 16)
 
     def ngtype(self, q):
@@ -441,13 +441,13 @@ class revlog(object):
         if node == nullid: return (nullid, nullid)
         r = self.rev(node)
         d = self.index[r][-3:-1]
-        if self.version == 0:
+        if self.version == REVLOGV0:
             return d
         return [ self.node(x) for x in d ]
     def start(self, rev):
         if rev < 0:
             return -1
-        if self.version != 0:
+        if self.version != REVLOGV0:
             return self.ngoffset(self.index[rev][0])
         return self.index[rev][0]
 
@@ -456,7 +456,7 @@ class revlog(object):
     def size(self, rev):
         """return the length of the uncompressed text for a given revision"""
         l = -1
-        if self.version != 0:
+        if self.version != REVLOGV0:
             l = self.index[rev][2]
         if l >= 0:
             return l
@@ -911,7 +911,7 @@ class revlog(object):
         if t >= 0:
             offset = self.end(t)
 
-        if self.version == 0:
+        if self.version == REVLOGV0:
             e = (offset, l, base, link, p1, p2, node)
         else:
             e = (self.offset_type(offset, 0), l, len(text),
@@ -935,7 +935,7 @@ class revlog(object):
             f.seek(0, 2)
             transaction.add(self.indexfile, f.tell(), self.count() - 1)
 
-        if len(self.index) == 1 and self.version != 0:
+        if len(self.index) == 1 and self.version != REVLOGV0:
             l = struct.pack(versionformat, self.version)
             f.write(l)
             entry = entry[4:]
@@ -1135,7 +1135,7 @@ class revlog(object):
                     raise RevlogError(_("consistency error adding group"))
                 textlen = len(text)
             else:
-                if self.version == 0:
+                if self.version == REVLOGV0:
                     e = (end, len(cdelta), base, link, p1, p2, node)
                 else:
                     e = (self.offset_type(end, 0), len(cdelta), textlen, base,
--- a/tests/test-basic.out
+++ b/tests/test-basic.out
@@ -6,6 +6,7 @@ summary:     test
 
 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a
 a
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-clone-pull-corruption.out
+++ b/tests/test-clone-pull-corruption.out
@@ -8,6 +8,7 @@ adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
 (run 'hg update' to get a working copy)
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-clone-r.out
+++ b/tests/test-clone-r.out
@@ -17,6 +17,7 @@
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
      5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
      6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -27,6 +28,7 @@ adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -37,6 +39,7 @@ adding changesets
 adding manifests
 adding file changes
 added 2 changesets with 2 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -47,6 +50,7 @@ adding changesets
 adding manifests
 adding file changes
 added 3 changesets with 3 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -57,6 +61,7 @@ adding changesets
 adding manifests
 adding file changes
 added 4 changesets with 4 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -67,6 +72,7 @@ adding changesets
 adding manifests
 adding file changes
 added 2 changesets with 2 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -77,6 +83,7 @@ adding changesets
 adding manifests
 adding file changes
 added 3 changesets with 3 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -87,6 +94,7 @@ adding changesets
 adding manifests
 adding file changes
 added 4 changesets with 5 changes to 2 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -97,6 +105,7 @@ adding changesets
 adding manifests
 adding file changes
 added 5 changesets with 6 changes to 3 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -107,6 +116,7 @@ adding changesets
 adding manifests
 adding file changes
 added 5 changesets with 5 changes to 2 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -119,6 +129,7 @@ adding manifests
 adding file changes
 added 4 changesets with 2 changes to 3 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-clone.out
+++ b/tests/test-clone.out
@@ -1,10 +1,12 @@
 a
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
 1 files, 1 changesets, 1 total revisions
 a not present
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-copy.out
+++ b/tests/test-copy.out
@@ -44,6 +44,7 @@ copy: a
 566e338d09a089ba737c21e0d3759980  .hg/data/b.d
 60b725f10c9c85c70d97880dfe8191b3  bsum
 60b725f10c9c85c70d97880dfe8191b3  asum
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-empty.out
+++ b/tests/test-empty.out
@@ -1,3 +1,4 @@
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-excessive-merge.out
+++ b/tests/test-excessive-merge.out
@@ -52,6 +52,7 @@ 79d7492df40aa0fa093ec4209be78043c181f094
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       5      0       0 2ed2a3912a0b 000000000000 000000000000
      1         5       6      1       1 79d7492df40a 2ed2a3912a0b 000000000000
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-filebranch.out
+++ b/tests/test-filebranch.out
@@ -65,6 +65,7 @@ 2ffeddde1b65b4827f6746174a145474129fa2ce
 aa27919ee4303cfd575e1fb932dd64d75aa08be4 644 foo
 6128c0f33108e8cfbb4e0824d13ae48b466d7280 644 quux
 everything should be clean now
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-help.out
+++ b/tests/test-help.out
@@ -49,7 +49,6 @@ list of commands (use "hg help -v" to sh
  copy        mark files as copied for the next commit
  diff        diff repository (or selected files)
  export      dump the header and diffs for one or more changesets
- forget      don't add the specified files on the next commit (DEPRECATED)
  grep        search for a pattern in specified files and revisions
  heads       show current repository heads
  help        show help for a given command or all commands
@@ -92,7 +91,6 @@ list of commands (use "hg help -v" to sh
  copy        mark files as copied for the next commit
  diff        diff repository (or selected files)
  export      dump the header and diffs for one or more changesets
- forget      don't add the specified files on the next commit (DEPRECATED)
  grep        search for a pattern in specified files and revisions
  heads       show current repository heads
  help        show help for a given command or all commands
--- a/tests/test-nested-repo.out
+++ b/tests/test-nested-repo.out
@@ -4,6 +4,5 @@
 # should print A b/x
 A b/x
 # should forget b/x
-(the forget command is deprecated; use revert instead)
 forgetting b/x
 # should print nothing
--- a/tests/test-permissions.out
+++ b/tests/test-permissions.out
@@ -1,13 +1,16 @@
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
 1 files, 1 changesets, 1 total revisions
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
 verify failed
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-pull-permission.out
+++ b/tests/test-pull-permission.out
@@ -3,6 +3,7 @@ adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-pull-pull-corruption.out
+++ b/tests/test-pull-pull-corruption.out
@@ -17,6 +17,7 @@ adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-pull-pull-corruption2.out
+++ b/tests/test-pull-pull-corruption2.out
@@ -10,11 +10,13 @@ adding changesets
 adding manifests
 adding file changes
 added 10 changesets with 10 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
 1 files, 10 changesets, 10 total revisions
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-pull.out
+++ b/tests/test-pull.out
@@ -1,4 +1,5 @@
 adding foo
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -9,6 +10,7 @@ adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-push-r.out
+++ b/tests/test-push-r.out
@@ -17,6 +17,7 @@
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
      5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
      6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -28,6 +29,7 @@ adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -39,6 +41,7 @@ adding changesets
 adding manifests
 adding file changes
 added 2 changesets with 2 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -50,6 +53,7 @@ adding changesets
 adding manifests
 adding file changes
 added 3 changesets with 3 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -61,6 +65,7 @@ adding changesets
 adding manifests
 adding file changes
 added 4 changesets with 4 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -72,6 +77,7 @@ adding changesets
 adding manifests
 adding file changes
 added 2 changesets with 2 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -83,6 +89,7 @@ adding changesets
 adding manifests
 adding file changes
 added 3 changesets with 3 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -94,6 +101,7 @@ adding changesets
 adding manifests
 adding file changes
 added 4 changesets with 5 changes to 2 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -105,6 +113,7 @@ adding changesets
 adding manifests
 adding file changes
 added 5 changesets with 6 changes to 3 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -116,6 +125,7 @@ adding changesets
 adding manifests
 adding file changes
 added 5 changesets with 5 changes to 2 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -128,6 +138,7 @@ adding manifests
 adding file changes
 added 4 changesets with 2 changes to 3 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-simple-update.out
+++ b/tests/test-simple-update.out
@@ -1,4 +1,5 @@
 adding foo
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -11,6 +12,7 @@ adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
 (run 'hg update' to get a working copy)
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-ssh.out
+++ b/tests/test-ssh.out
@@ -6,6 +6,7 @@ adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
 # verify
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -48,6 +49,7 @@ user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     add
 
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-static-http.out
+++ b/tests/test-static-http.out
@@ -12,6 +12,7 @@ adding changesets
 adding manifests
 adding file changes
 added 1 changesets with 1 changes to 1 files
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-undo.out
+++ b/tests/test-undo.out
@@ -1,3 +1,4 @@
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -10,6 +11,7 @@ date:        Mon Jan 12 13:46:40 1970 +0
 summary:     test
 
 rolling back last transaction
+repository uses revlog format 0
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests