ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: eviction and conflict manager
Date Fri, 23 Feb 2007 13:19:26 GMT
On 2/23/07, Gilles Faucherand <gilles.faucherand@genostar.com> wrote:
>
> Xavier Hanin wrote:
> > On 2/23/07, Gilles Faucherand <gilles.faucherand@genostar.com> wrote:
> >>
> >> Hi,
> >>
> >> I have some problems with eviction strategy. I set a
> >> defaultConflictManager="latest-time"
> >> in my ivyconf meaning for me if a conflict appears to retrieve all the
> >> time the last in time published.
> >>
> >> Say for instance that I have 3 modules A, B and C.
> >> 1) I publish C-1.0.0 and later C-1.0.1.
> >> 2) B needs  C-1.0.0, I retrieve (ok) and I publish B-1.0.0
> >> 3) A needs B-1.0.0 and C-1.0.1  (order is important: B before C in ivy
> >> file  ...)
> >>
> >> When I retrieve I get C-1.0.0 ???
> >>   [resolve]     :: evicted modules:
> >>   [resolve]     [ MyCompany | C | 1.0.1 ] by [[ MyCompany | C | 1.0.0]]
> >> in [all]
> >>   [resolve]       in [ MyCompany | A | 1.0.0 ] with latest-time
> >>
> >> If I change the order in the ivy file i.e. C before B, I get what I
> want
> >> C-1.0.1 ...
> >>   [resolve]     :: evicted modules:
> >>   [resolve]     [ MyCompany | C | 1.0.0 ] by [[ MyCompany | C | 1.0.1]]
> >> in [all]
> >>   [resolve]       in [ MyCompany | B | 1.0.0 ] with latest-time
> >>
> >> Is it normal ?
> >
> >
> > No, this is not normal. The only reason why this should happen is if
> > the two
> > revision are considered equal according to the latest revision strategy
> > used, in your case latest-time. So this should only happen if the two
> > have
> > the same time of publication. Note that Ivy uses the publication time
> > in the
> > Ivy file during conflict resolution, so make sure you have set the
> > publication attribute in your ivy files in your repository.
> You mean in the ivy file of the module C  <info organisation="MyCompany"
> module="C" ... publication="xxxxx"  >
> No, or I should change this date each time I publish and I've got a
> nightly builder ...
>
> After publication in the repository the ivy file created was
> myrepos/MyCompany/C/ivy-1.0.0.xml (following my ivy artifact pattern)
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ivy-module version="1.0">
>   <info organisation="MyCompany" module="C" revision="1.0.0"
> status="integration" publication="20070223132315"/>
> ...
> </ivy-module>
>
> A publication date is set ... I thought this date was used ?


Yes, this the one which should be used: the ivy file for C 1.0.0 and the one
for C 1.0.1 in your repository. Compare the two publication dates and make
sure they are different. But I realize that during conflict resolution, the
ivy files are not downloaded, so it seems to be a bug in Ivy to try to rely
on this publication date in the ivy file. It should better rely on the last
modified timestamp of the file. Could you please add an issue in JIRA?

- Xavier


> If you still
> > have the problem, you can open a JIRA issue describing your problem
> > and your
> > environment.
> >
> > Xavier
> >
> >
> >
> > Thanks in advance,
> >> Gilles
> >>
> >>
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message