You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by we...@tigris.org on 2009/03/13 14:55:33 UTC

Multi-modules / subdirectories

Hi,

I am trying to figure out how to use subversion with multi-module projects.
I will try to explain what problems I am trying to do, and the problems
I am having.
I have read several threads regarding this, but there did not seem to be
a real solution, or any news about future development to resolve the
issues.

As an example, let's say I have these modules: Module1, Module2, SharedModule.
In practice the number of modules are high, so keep that in mind.
There is a Project1, which uses Module1 and SharedModule. And there is
a Project2, which uses Module2 and SharedModule.
In case of a release I want to tag Module1 and SharedModule with "Project1-1.0"
or Module2 and SharedModule with "Project2-1.0".

I would like a layout like this:

/trunk
    /Module1
    /Module2
    /SharedModule
/tags
    /Project1-1.0
        /Module1
        /SharedModule
    /Project2-1.0
        /Module2
        /SharedModule
/branches
    /Project1-1.0-updates
        /Module1
        /SharedModule
    /Project2-1.0-updates
        /Module2
        /SharedModule

The problem I have is how to tag modules for Project1, without tagging those
of Project2. I would have no problem to checking out the modules for Project1
seperately and thus have a working copy with only the modules for Project1
as version controlled. However then I cannot find any way to tag subdirectories.
I would have to tag Module1 and SharedModule seperately each time. That
would be fine if there were two modules, but since in my case there are about
50 it would be unworkable.

If only there was an option to do subversion actions, such as tag/branch
and merge on subdirectories in a directory that itself is not version-controlled
I would be very happy.

Since there are about 50 modules, I do not want each of them to have their
own trunk, tags and branches. This also would result in way too much work.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1317549

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

RE: Multi-modules / subdirectories

Posted by Bob Archer <bo...@amsi.com>.
> A couple of questions about this, if you don't mind.
> 
> The svn:externals are set on the Project1 and Project2 directories?

Yes.

> Are there any plans to integrate the functionality of svncopy.pl in
> TortoiseSVN or Subversion itself?

I don't know. 


> Is there a windows tool to do this, instead of having to use perl?

Not that I am aware of. Sorry I can't be of more help.

BOb

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1334465

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].


RE: Multi-modules / subdirectories

Posted by we...@tigris.org.
Thank you for your suggestion.
I tried to do something with externals before, but since it just copied a directory with the properties on it, I thought that externals was not the right way to go.
However I did not know about svncopy.pl. I will check what it does exactly.

A couple of questions about this, if you don't mind.

The svn:externals are set on the Project1 and Project2 directories?

Are there any plans to integrate the functionality of svncopy.pl in TortoiseSVN or Subversion itself?

Is there a windows tool to do this, instead of having to use perl?

Thanks.
Robert


> How about something like this:
> 
> /trunk
>     /Module1
>     /Module2
>     /SharedModule
>     /Project1
>         /Module1 (external)
>         /SharedModule (external)
>     /Project2
>         /Module2 (external)
>         /SharedModule (external)        
> /tags
>     /Project1-1.0 
>         /Module1 (external@350)
>         /SharedModule (external@350)
>     /Project2-1.0
>         /Module2  
>         /SharedModule
> /branches
>     /Project1-1.0-updates
>         /Module1
>         /SharedModule
>     /Project2-1.0-updates
>         /Module2
>         /SharedModule
> 
> Now, when you tag Project1 you can use svncopy.pl and it will pin the
> externals in the tag to the current revision of module1 and shared
> module.
> 
> BOb
> 
>

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1332241

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

RE: Multi-modules / subdirectories

Posted by Bob Archer <bo...@amsi.com>.
How about something like this:

/trunk
    /Module1
    /Module2
    /SharedModule
    /Project1
        /Module1 (external)
        /SharedModule (external)
    /Project2
        /Module2 (external)
        /SharedModule (external)        
/tags
    /Project1-1.0 
        /Module1 (external@350)
        /SharedModule (external@350)
    /Project2-1.0
        /Module2  
        /SharedModule
/branches
    /Project1-1.0-updates
        /Module1
        /SharedModule
    /Project2-1.0-updates
        /Module2
        /SharedModule

Now, when you tag Project1 you can use svncopy.pl and it will pin the
externals in the tag to the current revision of module1 and shared
module.

BOb


> -----Original Message-----
> From: webpost@tigris.org [mailto:webpost@tigris.org]
> Sent: Friday, March 13, 2009 10:56 AM
> To: users@subversion.tigris.org
> Subject: Multi-modules / subdirectories
> 
> Hi,
> 
> I am trying to figure out how to use subversion with multi-module
> projects.
> I will try to explain what problems I am trying to do, and the
problems
> I am having.
> I have read several threads regarding this, but there did not seem to
be
> a real solution, or any news about future development to resolve the
> issues.
> 
> As an example, let's say I have these modules: Module1, Module2,
> SharedModule.
> In practice the number of modules are high, so keep that in mind.
> There is a Project1, which uses Module1 and SharedModule. And there is
> a Project2, which uses Module2 and SharedModule.
> In case of a release I want to tag Module1 and SharedModule with
> "Project1-1.0"
> or Module2 and SharedModule with "Project2-1.0".
> 
> I would like a layout like this:
> 
> /trunk
>     /Module1
>     /Module2
>     /SharedModule
> /tags
>     /Project1-1.0
>         /Module1
>         /SharedModule
>     /Project2-1.0
>         /Module2
>         /SharedModule
> /branches
>     /Project1-1.0-updates
>         /Module1
>         /SharedModule
>     /Project2-1.0-updates
>         /Module2
>         /SharedModule
> 
> The problem I have is how to tag modules for Project1, without tagging
> those
> of Project2. I would have no problem to checking out the modules for
> Project1
> seperately and thus have a working copy with only the modules for
Project1
> as version controlled. However then I cannot find any way to tag
> subdirectories.
> I would have to tag Module1 and SharedModule seperately each time.
That
> would be fine if there were two modules, but since in my case there
are
> about
> 50 it would be unworkable.
> 
> If only there was an option to do subversion actions, such as
tag/branch
> and merge on subdirectories in a directory that itself is not version-
> controlled
> I would be very happy.
> 
> Since there are about 50 modules, I do not want each of them to have
their
> own trunk, tags and branches. This also would result in way too much
work.
> 
> ------------------------------------------------------
>
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageI
d=
> 1317549
> 
> To unsubscribe from this discussion, e-mail: [users-
> unsubscribe@subversion.tigris.org].

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=1317631

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].