hgext3rd/evolve/utility.py
changeset 3904 d2d03df3956f
parent 3903 038cdaca7145
child 3905 4806d1339c30
equal deleted inserted replaced
3903:038cdaca7145 3904:d2d03df3956f
    90     # For each troubled revision we keep track of what instability if any should
    90     # For each troubled revision we keep track of what instability if any should
    91     # be resolved in order to resolve it. Example:
    91     # be resolved in order to resolve it. Example:
    92     # dependencies = {3: [6], 6:[]}
    92     # dependencies = {3: [6], 6:[]}
    93     # Means that: 6 has no dependency, 3 depends on 6 to be solved
    93     # Means that: 6 has no dependency, 3 depends on 6 to be solved
    94     dependencies = {}
    94     dependencies = {}
    95     # rdependencies is the inverted dict of dependencies
       
    96     rdependencies = {r: set() for r in revs}
       
    97 
    95 
    98     for r in revs:
    96     for r in revs:
    99         dependencies[r] = set()
    97         dependencies[r] = set()
   100         for p in repo[r].parents():
    98         for p in repo[r].parents():
   101             try:
    99             try:
   109                             tset.add(succ)
   107                             tset.add(succ)
   110                 dependencies[r].update(tset)
   108                 dependencies[r].update(tset)
   111                 continue
   109                 continue
   112             if succ in revs:
   110             if succ in revs:
   113                 dependencies[r].add(succ)
   111                 dependencies[r].add(succ)
   114                 rdependencies[succ].add(r)
   112 
       
   113     # rdependencies is the inverted dict of dependencies
       
   114     rdependencies = {r: set() for r in revs}
       
   115     for r, deps in dependencies.items():
       
   116         for dep in deps:
       
   117             rdependencies[dep].add(r)
       
   118 
   115     return dependencies, rdependencies
   119     return dependencies, rdependencies
   116 
   120 
   117 def _singlesuccessor(repo, p):
   121 def _singlesuccessor(repo, p):
   118     """returns p (as rev) if not obsolete or its unique latest successors
   122     """returns p (as rev) if not obsolete or its unique latest successors
   119 
   123