diff hgext3rd/topic/__init__.py @ 4704:5f90eb8fd63c

evolve: fix confusion in branch heads checking logic when topic in play To provide some context, when topics are in play the branchmap cache we store contains the branch info of a rev as "branch:topic" format IIUC. Assuming that is right, now in present code we don't actually cover this part that "when looking for branch heads where we also have active topic we should look for branch='branch_name:topic' instead". And we get wrong branch heads as a result. This patch make sure that we pass right candidate to find branch heads using branchmap.branchheads() by overriding the localrepo.branchheads() Changes in test file reflect the fixed behavior.
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Tue, 25 Jun 2019 21:54:22 +0530
parents daab6d665687
children fbe7f35a6926
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py	Sun Apr 14 12:55:46 2019 +0530
+++ b/hgext3rd/topic/__init__.py	Tue Jun 25 21:54:22 2019 +0530
@@ -436,6 +436,15 @@
                 return super(topicrepo, self).branchmap()
             return self.filtered(topicfilter).branchmap()
 
+        def branchheads(self, branch=None, start=None, closed=False):
+            if branch is None:
+                branch = self[None].branch()
+            if self.currenttopic:
+                branch = "%s:%s" % (branch, self.currenttopic)
+            return super(topicrepo, self).branchheads(branch=branch,
+                                                      start=start,
+                                                      closed=closed)
+
         def invalidatevolatilesets(self):
             # XXX we might be able to move this to something invalidated less often
             super(topicrepo, self).invalidatevolatilesets()