Skip to content
  • Pierre-Yves David's avatar
    outgoing: fix common-heads computation from `missingroots` argument · f95ab2c53303
    Pierre-Yves David authored
    When initializing a `outgoing` object, the `common set` can be defined explicitly (with the `commonheads` argument`) or implicitly (with the missingroots arguments).
    
    It turns out the logic to compute `commonheads` from `missingroots` is buggy, as it does not consider the parents of enough changesets. Previously, it only considered parents of "missingroots` items, while it need to consider all parents of missing. Here is an example:
    
      F
      |\
      C E
      | |
      B D
      |/
      A
    
    If we use [E] as missing-roots, the missing set is [E, F], and the common-heads
    are [C, D]. However you cannot only consider the parent of [E] to find them, as
    [C] is not a parent of [E].
    
    This already fix the bundle generated in one test, and it would prevent many
    other to misbehave with future change from this series.
    f95ab2c53303