shelve: handle shelved node on unfiltered repository
authorBoris Feld <boris.feld@octobus.net>
Wed, 06 Jun 2018 01:03:10 +0200
changeset 39373 6a71324cb68b
parent 39372 da121c9dc0f2
child 39374 c67c94c0e7ae
shelve: handle shelved node on unfiltered repository To build a version of shelve that use hiding instead of stripping, we need shelve to be able to find these revisions. This it does not hurt the bundle version, so we introduce the necessary code in the relevant place.
hgext/shelve.py
--- a/hgext/shelve.py	Tue May 29 11:47:32 2018 +0200
+++ b/hgext/shelve.py	Wed Jun 06 01:03:10 2018 +0200
@@ -160,10 +160,11 @@
             btype = 'HG20'
             compression = 'BZ'
 
-        outgoing = discovery.outgoing(self.repo, missingroots=bases,
+        repo = self.repo.unfiltered()
+
+        outgoing = discovery.outgoing(repo, missingroots=bases,
                                       missingheads=[node])
-        cg = changegroup.makechangegroup(self.repo, outgoing, cgversion,
-                                         'shelve')
+        cg = changegroup.makechangegroup(repo, outgoing, cgversion, 'shelve')
 
         bundle2.writebundle(self.ui, cg, self.fname, btype, self.vfs,
                                 compression=compression)
@@ -762,6 +763,7 @@
 
 def _unshelverestorecommit(ui, repo, basename):
     """Recreate commit in the repository during the unshelve"""
+    repo = repo.unfiltered()
     with ui.configoverride({('ui', 'quiet'): True}):
         shelvedfile(repo, basename, 'hg').applybundle()
         shelvectx = repo['tip']
@@ -961,6 +963,7 @@
     if not shelvedfile(repo, basename, patchextension).exists():
         raise error.Abort(_("shelved change '%s' not found") % basename)
 
+    repo = repo.unfiltered()
     lock = tr = None
     try:
         lock = repo.lock()