diff mercurial/obsutil.py @ 41152:191fac9ff9d3

obsutil: fix the issue5686 While traversing the obsolescence graph to find the successors sets of csets: In its 4th case (read comments of obsutil.successorssets to see all 4 cases) where we know successors sets of all direct successors of CURRENT, we were just missing a condition to filter out the case when a cset is pruned. And without this condition (that this patch added) it was making a whole successor set to [] just because of one pruned marker. For e.g:if following is the successors set of a cset A: A -> [a, b, c] if we prune c, we expect A's successors set to be [a, b] but you would get: A -> [] So this patch make sure that we calculate the right successorsset of csets considering the pruned cset (in split case). Differential Revision: https://phab.mercurial-scm.org/D5474
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Sun, 23 Dec 2018 02:01:35 +0530
parents 520514af2d93
children 9de6c4f61608
line wrap: on
line diff
--- a/mercurial/obsutil.py	Sun Jan 06 09:34:41 2019 +0530
+++ b/mercurial/obsutil.py	Sun Dec 23 02:01:35 2018 +0530
@@ -711,7 +711,8 @@
                                     if part not in newss:
                                         newss.append(part)
                                 productresult.append(newss)
-                        markss = productresult
+                        if productresult:
+                            markss = productresult
                     succssets.extend(markss)
                 # remove duplicated and subset
                 seen = []