ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jarosław Wypychowski <J.Wypychow...@icm.edu.pl>
Subject Bug in latest-compatible conflict manager ?
Date Thu, 25 Jun 2009 15:12:43 GMT
Hello,

I tried to prepare a conflict manager/latest strategy/whatever to
support a use case in which I want to have latest.integration overriding
any other revision number. 
During that struggle I tried to understand what exactly does
LatestCompatibleConflictManager do. In the IVY-2.0.0 (but no changes in
that code in 2.1.0-RC1 nor svn) in LatestCompatibleConflictManagerTest
are 2 tests for circular dependencies:

    public void testCompatibilityResolveCircularDependency2() throws
Exception {
        fixture
            .addMD("#A;1->#C;2")
            .addMD("#C;1->#B;1")
            .addMD("#C;2->#B;2")
            .addMD("#C;3->#B;3")
            .addMD("#B;1->#C;latest.integration") // circular dependency
            .addMD("#B;2->#C;latest.integration") // circular dependency
            .addMD("#B;3->#C;latest.integration") // circular dependency
            .init();
        resolveAndAssert("#A;1", "#B;2, #C;2");
    }

    public void testCompatibilityResolveCircularDependency3() throws
Exception {
        // same as 2, but A depends on B
        fixture
            .addMD("#A;1->#B;2")
            .addMD("#C;1->#B;1")
            .addMD("#C;2->#B;2")
            .addMD("#C;3->#B;3")
            .addMD("#B;1->#C;latest.integration") // circular dependency
            .addMD("#B;2->#C;latest.integration") // circular dependency
            .addMD("#B;3->#C;latest.integration") // circular dependency
            .init();
        resolveAndAssert("#A;1", "#B;2, #C;2");
    }

The first one is intuitive and #C;2 is what I expect to see. But the
second one is magic. 
We have the following graph:

#A;1->#B;2->C#latest.integration 

C#latest.integration doesn't seam to have any dependencies so the rest
is a garbage IMHO (unless I'm missing something). Could someone please
enlighten me why the expected result is #C;2 in this test ? 
And secondly - how to achieve the main goal - resolving to
latest.integration always when it is listed anywhere in the
dependencies ?

Best Regards,

--jw

-- 
Jaroslaw Wypychowski, ICM UW, email: jarwyp@icm.edu.pl

KPK Kan. 97 § 2. Małoletni, przed ukończeniem siódmego roku życia,
nazywa się dzieckiem i uważany jest za nie posiadającego używania
rozumu. Po skończonym siódmym roku życia domniemywa się, że posiada
używanie rozumu.

Mime
View raw message