You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Hugo Alexandre Dias <hu...@hugo-dias.com.pt> on 2006/05/30 22:10:04 UTC

One repository but partial components

Hi

I'm trying to use SVN to devellop diferent versions of the same software to different clients with different modules. Each module is in one directory.

Example: I want to have only one repository that i can manage the software for all my clients. Client A has online store but client B don't have it. So i don't want to take the store folder to client B.

What should i do? how to configure it, what procedures to follow. If anyone can provide me a path for me to follow, I thank you in advance.


Hugo Alexandre Dias, Eng.ยบ
hugo@hugo-dias.com.pt

Re: One repository but partial components

Posted by Hugo Alexandre Dias <ma...@hugo-dias.com.pt>.
Thank you. 

It was very helpful..

Hugo Dias
----- Original Message ----- 
From: "Ryan Schmidt" <su...@ryandesign.com>
To: "Hugo Alexandre Dias" <hu...@hugo-dias.com.pt>
Cc: <us...@subversion.tigris.org>
Sent: Wednesday, May 31, 2006 1:54 PM
Subject: Re: One repository but partial components


> On May 31, 2006, at 00:10, Hugo Alexandre Dias wrote:
> 
>> I'm trying to use SVN to devellop diferent versions of the same  
>> software to different clients with different modules. Each module  
>> is in one directory.
>>
>> Example: I want to have only one repository that i can manage the  
>> software for all my clients. Client A has online store but client B  
>> don't have it. So i don't want to take the store folder to client B.
>>
>> What should i do? how to configure it, what procedures to follow.  
>> If anyone can provide me a path for me to follow, I thank you in  
>> advance.
> 
> Sounds like you might want to consider basically this structure:
> 
> /repository/
> modules/
> store/
> ...
> foo/
> ...
> bar/
> ...
> baz/
> ...
> ...
> clients/
> clientA/
> store <-- external pointing to modules/store
> foo <-- external pointing to modules/foo
> bar <-- external pointing to modules/bar
> clientB/
> foo <-- external pointing to modules/foo
> baz <-- external pointing to modules/baz
> ...
> 
> In fact, since you may want to work with branches and tags, you  
> should probably expand that a bit. If the modules are independent of  
> one another, then I recommend this structure for the modules  
> directory, so that you can tag and branch the individual modules  
> separately:
> 
> modules/
> store/
> trunk/
> ...
> branches/
> some-store-branch/
> ...
> ...
> tags/
> some-store-tag/
> ...
> ...
> foo/
> trunk/
> ...
> branches/
> ...
> tags/
> ...
> bar/
> trunk/
> ...
> branches/
> ...
> tags/
> ...
> baz/
> trunk/
> ...
> branches/
> ...
> tags/
> ...
> ...
> 
> If modules are interrelated and dependant on having the same version  
> of the other modules, then the other way around is better, where you  
> tag or branch all modules at once:
> 
> modules/
> trunk/
> store/
> ...
> foo/
> ...
> bar/
> ...
> baz/
> ...
> ...
> branches/
> some-branch/
> store/
> ...
> foo/
> ...
> bar/
> ...
> baz/
> ...
> ...
> ...
> tags/
> some-tag/
> ...
> ...
> 
> Each client is probably independent of the other clients, so this  
> layout is probably best for the clients directory:
> 
> clients/
> clientA/
> trunk/
> store <-- external
> foo <-- external
> bar <-- external
> branches/
> some-clientA-branch/
> ...
> ...
> tags/
> ...
> clientB/
> trunk/
> foo <-- external
> baz <-- external
> branches/
> ...
> tags/
> ...
> ...
> 
> In this case, the externals should point to a specific tag or branch  
> of the given module.
> 
> You can read about externals in the book:
> 
> http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html
> 
> Branching and tagging and merging is described here:
> 
> http://svnbook.red-bean.com/en/1.2/svn.branchmerge.html
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
> 
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: One repository but partial components

Posted by Ryan Schmidt <su...@ryandesign.com>.
On May 31, 2006, at 00:10, Hugo Alexandre Dias wrote:

> I'm trying to use SVN to devellop diferent versions of the same  
> software to different clients with different modules. Each module  
> is in one directory.
>
> Example: I want to have only one repository that i can manage the  
> software for all my clients. Client A has online store but client B  
> don't have it. So i don't want to take the store folder to client B.
>
> What should i do? how to configure it, what procedures to follow.  
> If anyone can provide me a path for me to follow, I thank you in  
> advance.

Sounds like you might want to consider basically this structure:

/repository/
	modules/
		store/
			...
		foo/
			...
		bar/
			...
		baz/
			...
		...
	clients/
		clientA/
			store <-- external pointing to modules/store
			foo <-- external pointing to modules/foo
			bar <-- external pointing to modules/bar
		clientB/
			foo <-- external pointing to modules/foo
			baz <-- external pointing to modules/baz
		...

In fact, since you may want to work with branches and tags, you  
should probably expand that a bit. If the modules are independent of  
one another, then I recommend this structure for the modules  
directory, so that you can tag and branch the individual modules  
separately:

	modules/
		store/
			trunk/
				...
			branches/
				some-store-branch/
					...
				...
			tags/
				some-store-tag/
					...
				...
		foo/
			trunk/
				...
			branches/
				...
			tags/
				...
		bar/
			trunk/
				...
			branches/
				...
			tags/
				...
		baz/
			trunk/
				...
			branches/
				...
			tags/
				...
		...

If modules are interrelated and dependant on having the same version  
of the other modules, then the other way around is better, where you  
tag or branch all modules at once:

	modules/
		trunk/
			store/
				...
			foo/
				...
			bar/
				...
			baz/
				...
			...
		branches/
			some-branch/
				store/
					...
				foo/
					...
				bar/
					...
				baz/
					...
				...
			...
		tags/
			some-tag/
				...
			...

Each client is probably independent of the other clients, so this  
layout is probably best for the clients directory:

	clients/
		clientA/
			trunk/
				store <-- external
				foo <-- external
				bar <-- external
			branches/
				some-clientA-branch/
					...
				...
			tags/
				...
		clientB/
			trunk/
				foo <-- external
				baz <-- external
			branches/
				...
			tags/
				...
		...

In this case, the externals should point to a specific tag or branch  
of the given module.

You can read about externals in the book:

http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html

Branching and tagging and merging is described here:

http://svnbook.red-bean.com/en/1.2/svn.branchmerge.html


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org