Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can a Liferay portal be placed under version control?

What's a good way to put a Liferay portal under version control? By this, I don't mean versioning the portlets we wrote, but the actual layout and configuration of a running site.

When setting a new site up all changes to layout and configuration are made through the admin Control Panel. What I'm looking to achieve with version control are:

  1. Make it possible to revert the site to any of its previous states.
  2. Make it easy to synchronize between developers so that when a dev instance is launched, it reflects the state of what's in production (or any other instance at a particular revision).

Of course the state of content would be more or less dynamic (syncing database states would be a different issue), the focus here is more of the layouts, themes, pages and other things inherent in liferay like user groups, etc.

like image 480
Edward Samson Avatar asked May 16 '11 08:05

Edward Samson


1 Answers

In the next release of Liferay, we've included a new feature within "Staging" called "Branching & Versioning" that provides VCS support for your site(s).

Each site will be able to have unlimited number of "Branches" (which comprises an entire tree worth of changes) while within a given Branch each page can have any number of "Revisions" that can be at any time marked as the "Head" revision.

So, what this means in terms of your questions:

"1. Make it possible to revert the site to any of its previous states."

Yes you will be able to do this provided you keep each changeset as a Branch. i.e. starting with the site using Branch A, you can publish Branch B, and later republish Branch A, later Publish Branch C, and again later republish Branch A, and so on.

"2. Make it easy to synchronize between developers so that when a dev instance 
is launched, it reflects the state of what's in production (or any other instance
at a particular revision)."

I'm not sure if I'm answering this one correctly, but if my understanding is to have concurrent development then yes. If beyond that you want to see what the site looks like at some revision in some branch, then yes, you can do that as well. Beyond that the changes and Staging is contained within one given portal instance which in effect is the "Staging" environment. This environment can either be completely integrated with prod (effectively everything in the same portal instance/database) or it can be remote from prod (different server, different instance, different database, where all publishing of "staged" content originates within Staging and publishes become remote operations, seamlessly integrated. Here you'll need LDAP sync with prod for the content developers on Staging).

like image 113
Ray Avatar answered Oct 04 '22 15:10

Ray