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: Maintaining branches
Date Tue, 03 Jul 2007 06:30:37 GMT
On 7/2/07, Barrett Snyder <barrettas@gmail.com> wrote:
>
> I am using Ivy on a source base which has multiple projects/branches going
> at the same time. Almost every branch has dependencies on a core framework
> which we usually include  in each project branch since the framework is
> still in flux and changes with each project. We declare a branch attribute
> for the dependency tag of each module in the framework. The problem comes
> in
> when we merge branches or back to HEAD because we then manually need to go
> through and change each branch attribute. Is there an easy way to somewhat
> automate this?
>
> We are using Ant to do builds for releases and automated (CruiseControl)
> builds while Eclipse (with IvyDE) handles building in our development
> environments, so the solution needs to be compatible with both
> environments.
> Hence, Ant token replacement doesn't get us there.
>
> I have pondered specifying a property in our ivyconf.xml called "
> branch.name"
> and importing this property from a file which could exist on each branch.
> Then I could use this property on the module tag as the default branch.
> This
> would allow us to only specify branch attributes in exception cases where
> the dependency is on a different branch and not the same branch you are
> working on. This works for about 75% of the cases, but another problem
> arises when you are working with projects with inter-branch dependencies
> because this property then needs to be project specific and not globally
> specified.
>
> Has anybody working with Ivy and cross branch development come up with an
> elegant solution to this problem, or do you just live with manually
> updating
> branch attributes every time you merge?


The case is interesting, it's not easy to solve depending on your
environment, and how frequently people work on different branches. One thing
which might work is to use property file to store branch "profiles". You
would use property like [module].branch.name (eg foo.branch.name) to name
the branches on which is module is living in this profile. You can either
define all your module branches in one file, or split them in several files,
depending on the way branches are used. Then switching from one profile to
another only requires including appropriate file(s) in your
ivyconf.xml(settings in
2.x). But it will only work if you can imagine such branch profiles. If
every module evolve independently, you will have to fallback to independent
branch attribute values.

HTH,

Xavier

Thanks!
>



-- 
Xavier Hanin - Independent Java Consultant
Creator of Ivy, xooki and xoocode.org
More about me: http://xhab.blogspot.com/

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