Maven & Repository Layout

Mina R Waheeb syncer at gmail.com
Thu Jul 31 00:44:57 CDT 2008


Hi,
   I'm trying to setup Mercurial repository for huge amount of code managed
by Maven software project management. We have hierarchical multi-layer
directory layout, The tree below describe our structure.

+--- Product
|    +---- pom.xml (Maven project descriptor)
|    +---- component 1 (A leaf component)
|         +---- pom.xml
|         +---- src
|    +---- component 2 (A container component or sub-project)
|         +---- pom.xml
|         +---- comp2-sub1 (A container component or sub-project)
|              +---- pom.xml
|              +---- comp2-sub1-sub
|                   +---- pom.xml
|                   +---- src

The above layout is required only to compile the hole project from the
source, But not required in the development time because Maven has its
own repository contains the required dependency, Which makes the SCM
layout maybe different than the above layout. As our requirement to
make each component has its own development line, branches and tags, A
group of repositories will be suitable one for each component. The
problem appears in the tagging and the release process of the hole
product, How can be the independant modules be connected togther?

The Forest extension maybe my solution but the concept still not clear
to me. Its add new commands fclone, fpull, fpush, fstatus, fupdate.
fseed, fsnap and ftrees, But there is no ftag.

The documentation says: "With the fsnap and fseed commands it is
possible to create a forest that can be pushed to a shared repository,
and subsequently cloned by others. This allows you to have several
repositories on a server, with a separate forest that collects them" .
And in another para, "This is despite the fact that the shared forest
does not actually contain any child repositories."

This means that the shared repository can't be pulled by the normal hg
operations and its can't be tagged, Did I miss understand that?

Can Mercurial help me with the above structure or Is there any
recommendation or best practices to apply this structure or Maven
layout?

Also, The Nested Repositories is very intersting, What is the current
development stage of it?

Sorry for talking too much :) and Thanks in advance.

Regards,
Mina R Waheeb


More information about the Mercurial mailing list