hgext3rd/topic/stack.py
branchstable
changeset 4829 6b82b4f72347
parent 4828 aaf8742e09a0
child 4830 4c5377ab147a
--- a/hgext3rd/topic/stack.py	Fri Sep 06 12:16:34 2019 +0700
+++ b/hgext3rd/topic/stack.py	Fri Sep 06 12:53:46 2019 +0700
@@ -88,9 +88,6 @@
 
     @util.propertycache
     def _dependencies(self):
-        return self.builddependencies()
-
-    def builddependencies(self):
         deps, rdeps = builddependencies(self._repo, self._revs)
 
         repo = self._repo
@@ -146,8 +143,18 @@
         # processed dependency graph.
 
         # Step 1: compute relation of revision with each other
-        dependencies, rdependencies = self.builddependencies()
-        dependencies = dependencies.copy()
+        origdeps, rdependencies = self._dependencies
+        dependencies = {}
+        # Making a deep copy of origdeps because we modify contents of values
+        # later on. Checking for list here only because right now
+        # builddependencies in evolvebits.py can return a list of _succs()
+        # objects. When that will be dealt with, this deep copy code can be
+        # simplified a lot.
+        for k, v in origdeps.items():
+            if isinstance(v, list):
+                dependencies[k] = [i.copy() for i in v]
+            else:
+                dependencies[k] = v.copy()
         rdependencies = rdependencies.copy()
         # Step 2: Build the ordering
         # Remove the revisions with no dependency(A) and add them to the ordering.