hgext/shelve.py
changeset 26507 ae29cffa05db
parent 26506 edecf059fda6
child 26520 46dec89fe888
--- a/hgext/shelve.py	Thu Oct 01 15:09:32 2015 -0700
+++ b/hgext/shelve.py	Thu Oct 01 15:08:00 2015 -0700
@@ -106,8 +106,18 @@
         return bundlerepo.bundlerepository(self.repo.baseui, self.repo.root,
                                            self.vfs.join(self.fname))
     def writebundle(self, bases, node):
-        cg = changegroup.changegroupsubset(self.repo, bases, [node], 'shelve')
-        changegroup.writebundle(self.ui, cg, self.fname, 'HG10BZ', self.vfs)
+        btype = 'HG10BZ'
+        cgversion = '01'
+        compression = None
+        if 'generaldelta' in self.repo.requirements:
+            btype = 'HG20'
+            cgversion = '02'
+            compression = 'BZ'
+
+        cg = changegroup.changegroupsubset(self.repo, bases, [node], 'shelve',
+                                           version=cgversion)
+        changegroup.writebundle(self.ui, cg, self.fname, btype, self.vfs,
+                                compression=compression)
 
 class shelvedstate(object):
     """Handle persistence during unshelving operations.