diff mercurial/localrepo.py @ 14274:01472f8f5429

merge with crew
author Matt Mackall <mpm@selenic.com>
date Sun, 08 May 2011 16:41:41 -0500
parents a55a0045704c d6907a5674a2
children 31a5973fcf96
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sun May 08 20:45:47 2011 +0200
+++ b/mercurial/localrepo.py	Sun May 08 16:41:41 2011 -0500
@@ -21,7 +21,7 @@
 class localrepository(repo.repository):
     capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey',
                         'known', 'getbundle'))
-    supportedformats = set(('revlogv1',))
+    supportedformats = set(('revlogv1', 'generaldelta'))
     supported = supportedformats | set(('store', 'fncache', 'shared',
                                         'dotencode'))
 
@@ -61,6 +61,8 @@
                         '\0\0\0\2' # represents revlogv2
                         ' dummy changelog to prevent using the old repo layout'
                     )
+                if self.ui.configbool('format', 'generaldelta', False):
+                    requirements.append("generaldelta")
             else:
                 raise error.RepoError(_("repository %s not found") % path)
         elif create:
@@ -115,6 +117,8 @@
     def _applyrequirements(self, requirements):
         self.requirements = requirements
         self.sopener.options = {}
+        if 'generaldelta' in requirements:
+            self.sopener.options['generaldelta'] = 1
 
     def _writerequirements(self):
         reqfile = self.opener("requires", "w")
@@ -700,7 +704,7 @@
         if os.path.exists(bkname):
             util.copyfile(bkname, self.join('journal.bookmarks'))
         else:
-            self.opener('journal.bookmarks', 'w').write('')
+            self.opener.write('journal.bookmarks', '')
 
         return (self.sjoin('journal'), self.join('journal.dirstate'),
                 self.join('journal.branch'), self.join('journal.desc'),