Login

Username

Password





Register   Reset password

Get Cuyahoga at SourceForge.net. Fast, secure and Free Open Source software downloads

Forum

Welcome Guest Search | Active Topics | Members

Putting Cuyahoga under version control Options
D3grade
Posted: Saturday, June 14, 2008 9:15:41 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Hi Guys,

I just wanted to ask how people manage their own copy of the source for cuyahoga?

We, in the past, have kept the core CMS in its own repository and then taken a copy and compiled it for a client. Then this goes in it's own rpository where we change and control the CSS and what not specific to that installation.

We haven't really used tags or branching which i think has made it hard to manage as whenever we now makes changes to a previous version, we end up being forced to upgrade it to the latest version.

Can I ask how other manage their code in version control software for each client? Do you branch? or tag? or something else?

Many thanks

Matt
webolize
Posted: Saturday, June 14, 2008 4:34:37 PM
Rank: Advanced Member
Groups: Member

Joined: 7/3/2007
Posts: 44
Points: 132
Similar issue came up for me when working on Webolize IssueTracker, which is a Cuyahoga module. What is the best way to upgrade or move your code to the next version.

I'm still having issues, but you basically have to keep your code and the cuyahoga code in separate places and your build scripts will have to copy them to the correct places right at the end.

If it's modules, cuyahoga has a pretty slick feature in the install script that it looks for ALL module directories and asks if you want to install it.
D3grade
Posted: Sunday, June 15, 2008 2:15:59 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
I guess module version control is another issue.

Do people just keep all the modules in the core repository? or should you seperate the modules into a) a single repository for all modules or b) a sperate repository per module.

Matt
D3grade
Posted: Tuesday, June 17, 2008 1:04:39 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Anyone else got any recomendations?

I know it's not stricktly about the CMS istelf, but still think it is valuble information on how to use the CMS effecitley.

Many thanks

Matt
martijnb
Posted: Tuesday, June 17, 2008 1:04:11 PM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
The easiest solution I found so far is the following physical structure:

Code:

MyCuyahogaSolution
|- Website (Plain vanilla Cuyahoga, not under source control, not in solution)
|- MyCuyahogaSolution.Web (templates, css, custom aspx pages)
|- MyCuyahogaSolution.Modules.Module1
|- MyCuyahogaSolution.Modules.Module2
|- ...


The trick here is that the Web project exactly mimics the structure of Cuyahoga.Web. A post-build step copies everything (web files and binaries) over the default Cuyahoga files in the Website directory. You have to use IIS as webserver in this scenario and use a virtual directory that points to the Website directory.
This way, it's easy to customize Cuyahoga without having the need to put Cuyahoga itself under source control.
D3grade
Posted: Wednesday, June 18, 2008 1:01:07 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Hmmm, thats not too far from what we have been doing.

I think the major difference is that we have made quite a few changes to the Admin (so probably won't be able to upgrade that easily) which means it would make sense to put the actual core source under version control, to track these changes.

Maybe i need to look into linking the repositories (which i beleive you can do in SVN) to mimic something similar.

Quick question on the setup you've explained. Do you create your modules specific to a client? or do you create general ones which work from client to client? I ask because we have done the later, which are added to the core cuyahoga solution, which is another reason why we put the core source under version control at this time.

Many thanks

Matt
martijnb
Posted: Wednesday, June 18, 2008 12:43:11 PM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
D3grade wrote:

Quick question on the setup you've explained. Do you create your modules specific to a client? or do you create general ones which work from client to client? I ask because we have done the later, which are added to the core cuyahoga solution, which is another reason why we put the core source under version control at this time.


The projects we've done so far didn't have a need for similar modules. If this were the case, we'd probably set up a new SVN repository and use svn:externals.
D3grade
Posted: Thursday, June 19, 2008 1:00:35 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Hmmm, interesting.

Looking into Subversion, i may have come across the perfect solution. Vendor Branches.

http://svnbook.red-bean.com/en/1.1/ch07s05.html

Matt
D3grade
Posted: Thursday, June 19, 2008 3:05:50 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
I'm begining to see how it might be best to set this up. I do have another question i could do with your advice on.

Say for the core CMS that we will have under version control, and any common modules. When you use svn:externals, would it best to create a branch specificaly for the client? That way if they come back for changes they are not forced to upgrade as they currently are.

Many thanks

Matt
martijnb
Posted: Friday, June 20, 2008 2:31:05 AM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
When creating a specific customer branch so that you don't have to upgrade Cuyahoga, I'd suggest not using svn:externals, but including the Cuyahoga source in the branch.
D3grade
Posted: Friday, June 20, 2008 5:01:54 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Ok,

I'm now thinking that i basically need 2 repositories.

A vendor repository for cuyahoga itself, and then a repository for the modified CMS. In this repository, the trunk contains the source for the cms along with core / common modules. Each client then gets their own branch, where unused modules can be removed.

It would look something like this.



What do you think?

Matt
gedw99
Posted: Monday, June 23, 2008 12:28:50 PM
Rank: Advanced Member
Groups: Member

Joined: 4/3/2006
Posts: 243
Points: 450
Location: the moon :)
D3grade,

this is exactly what i do.

i also use Git not SVN as its much lighter and easier to manage branches i find. But git does take a bit of getting used to. The windows version is super stable ans thee work going on to make the TortoiseSVN windows explorer shell stuff work with GIT too which is the icing on the cake. If i was thinking about using Git, i would wait for the explorer shell integration.
In Git you can pull and push to/from SVN server too.

if your doing it hard your probably doing it the wrong way....
D3grade
Posted: Tuesday, June 24, 2008 12:57:04 AM
Rank: Advanced Member
Groups: Member

Joined: 2/17/2007
Posts: 168
Points: 387
Cheers gedw99,

I've only recently really heard of Git, but will definatley keep an eye on it (especialy if there is going to be TortoiseSVN integration).

Untill then, i'm really happy with subversion.

Many thanks

Matt
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

Yet Another Forum.net version 1.9.0 running under Cuyahoga.
Copyright © 2003-2006 Yet Another Forum.net. All rights reserved.