Portal Engine Questions on portal engine and web parts.
Version 5.x > Portal Engine > Multi-dev setup and Version Control View modes: 
User avatar
Certified Developer 11
Certified Developer 11
Cy - 2/3/2010 11:12:37 AM
   
Multi-dev setup and Version Control
I have just started on two new Kentico projects and I am wondering if anyone has a better setup for working in a multiple developer environment with Version Control (Subversion in our case). We usually let developers work with their own copy of the code base locally and then they all use the dev version of the database for dev work. We have a Continous Integration Server handle moving files to the dev/review server once a developer checks in changes/new templates/etc.

When working with the portal engine, version control gets thrown out because most of the page templates, etc. are stored in the DB and not the file system.

Deployment from dev to production is always very manual and I would like to turn this into a one click script or similar using powershell or nant. Has anyone done this? Is it possible to kick off the export of specific items from the dev server through the command line? I would need to kick off import as well.

This is the one problem we run into with CMS tools, out normal dev workflow is disrupted because deployment is an issue.

Any input, feedback would be appreciated.

Cy

User avatar
Kentico Support
Kentico Support
kentico_jurajo - 2/9/2010 1:49:10 PM
   
RE:Multi-dev setup and Version Control
Hi,

One option is to use web farm synchronization but here can be problem with version control and web.config file - it has to be different on each machine, so you need to exclude it from the version control.

And then when moving the changes to production you can try to use content staging module to synchronize changes between DEV and PROD servers.

Best Regards,
Juraj Ondrus

User avatar
Member
Member
Jimmy - 1/27/2011 7:06:52 AM
   
RE:Multi-dev setup and Version Control
Did you ever come up with an elegant solution for this? I'm running into exactly this problem now.

We're not planning on using the portal engine, so the templates themselves will simply be ASPX pages in the version control system. Unlike yourself though, our devs are distributed geographically so sharing a development CMS database is not very practical.

As such, if DevA on MachineA creates a new template and installs this in their local CMS... runs some tests and then commits the code to version control, when DevB syncs to head and tries to run the new code on MachineB it fails (because the new template isn't installed in their CMS).

Ideally it would be good to have an XML document or something somewhere that defined what templates should be installed in a particular site and their relationship to one another (scopes etc.) rather than having this stored in the databases... that way the XML document could easily be maintained in version control and, indeed, deployed to the staging and live servers by the build tasks and the continuous integration server.

One possible work around might be to create exactly that (and XML document) and then a custom tool that parsed the XML document and used the kentico api to ensure all required templates were installed/configured... that tool could then be run as a build task and by developers, after they check out the head revision.

This would be the equivalent of something like a patch_db.sql script used to maintain database schema changes across instances of relational databases on different developers' machines (and in the staging/live environments).

I'm kind of loath to write something like this myself - it sounds like a big job and something I hoped would have been done by now, given kentico's maturity.

User avatar
Kentico Support
Kentico Support
kentico_jurajo - 1/31/2011 7:32:16 AM
   
RE:Multi-dev setup and Version Control
Hi,

Right now you can use check out/in options where ever it is possible to avoid conflicts. But, in version 6.0 of Kentico CMS will be introduced object versions where you will have something like workflow applied for the objects which may fit your need too.

Best regards,
Juraj Ondrus