¿Cómo se puede colocar un portal Liferay bajo control de versión?

¿Cuál es una buena manera de poner un portal Liferay bajo control de versión? Con esto, no me refiero a versionar los portlets que escribimos, sino el layout y la configuration reales de un sitio en ejecución.

Al configurar un sitio nuevo, todos los cambios en el layout y la configuration se realizan a través del Panel de control del administrador. Lo que estoy buscando lograr con el control de versiones son:

  1. Permitir revertir el sitio a cualquiera de sus estados anteriores.
  2. Facilite la synchronization entre desarrolladores para que cuando se inicie una instancia de desarrollo, refleje el estado de lo que está en producción (o cualquier otra instancia en una revisión en particular).

Por supuesto, el estado del contenido sería más o less dynamic (la synchronization de los estados de la database sería un problema diferente), el enfoque aquí es más layouts, temas, páginas y otras cosas inherentes en liferay como grupos de usuarios, etc.

En el próximo lanzamiento de Liferay, hemos incluido una nueva function dentro de "Staging" llamada "Branching & Versioning" que brinda soporte de VCS para su (s) sitio (s).

Cada sitio podrá tener un número ilimitado de "Sucursales" (que comprende un tree completo por valor de cambios) mientras que dentro de una Sucursal determinada, cada página puede tener cualquier cantidad de "Revisiones" que en cualquier momento pueden marcarse como "Cabeza". revisión.

Entonces, ¿qué significa esto en términos de sus preguntas?

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

Sí, podrá hacer esto siempre que mantenga cada set de cambios como una Sucursal. es decir, comenzando con el sitio que utiliza la Sucursal A, puede publicar la Sucursal B y luego republicar la Sucursal A, luego Publicar la Sucursal C, y luego republicar la Sucursal A, y así sucesivamente.

 "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)." 

No estoy seguro de si estoy respondiendo correctamente, pero si mi entendimiento es tener un desarrollo concurrente, entonces sí. Si además quieres ver cómo se ve el sitio en una revisión en alguna twig, entonces sí, puedes hacer eso también. Más allá de eso, los cambios y la Etapa están contenidos dentro de una instancia de portal determinada que en efecto es el entorno de "Etapa". Este entorno puede estar completamente integrado con prod (efectivamente todo en la misma instancia / database del portal) o puede ser remoto desde prod (server diferente, instancia diferente, database diferente, donde toda publicación de contenido "en etapas" se origina en etapas y publica se convierten en operaciones remotas, integradas a la perfección. Aquí necesitará synchronization LDAP con prod para los desarrolladores de contenido en etapas).