I found a failing test case that I could manually reconstruct, see upcoming
patch. it has the (simplified) structure A;B;C;D, where
* A and B conflict
* C explicitly depends on A
* D explicitly depends on B and C
Here, darcs reports no conflict i.e. tells us that the conflict A vs. B has
been resolved. This is correct, since D transitively depends on both A and
B.
Whereas if we swap B;C to C;B resulting in A;C;B;D, then it does report the
conflict. Which is incorrect.
Thinking about this test case made me realize that there is a property that
RepoPatches have but Named patches are missing:
If we merge A;C with B, where A conflicts with B, and C depends on A,
then B and C /also/ conflict.
With Named patches this is no longer true, namely if C depends (only)
explicitly on A. I don't think this is relevant to the bug in question,
just wanted to mention it here for the record.
|