Control de versión de desarrollo front-end para un CMS

Estoy buscando una metodología de mejores prácticas para el control de versiones para múltiples desarrolladores front-end que trabajan juntos en sitios web basados ​​en CMS.

Entonces, tenemos varios sitios web basados ​​en CMS en desarrollo activo. Si tiene curiosidad, el CMS es DNN. En nuestro server de testing, tenemos desarrolladores front-end que trabajan con CSS, JS y también agregan contenido a páginas que, por supuesto, están almacenadas en la database. También tenemos desarrolladores de modules que tienen copys locales de la fuente Y la database donde se desarrollan y promocionan al server de testing. Y tenemos un server TFS donde los desarrolladores de modules pueden albergar sus repositorys para el control de versiones.

Mi pregunta es, ¿cómo puedo get desarrolladores de front-end en el control de versiones? No pueden tener versiones locales de la database porque todas sus actualizaciones de contenido (database) estarían constantemente desincronizadas con el server de testing. No es realist para ellos crear scripts de cambio para sus actualizaciones de contenido / página para la database (sin mencionar que es un set de habilidades diferente y que no constring con el propósito de la usabilidad del CMS). No todos pueden alojar copys locales de los files y luego conectarse a un DB remoto compartido porque la aplicación usa caching de memory … que sería … lo adivinaste … fuera de synchronization.

Siento que me falta algo aquí porque otras organizaciones deben estar logrando esto de alguna manera. Necesitamos absolutamente el control de versión en nuestros resources de JS / CSS.

Gracias.

Efectivamente tiene dos sets de trabajo que deben tratarse por separado.

El primero es su versión de DNN y las personalizaciones que realiza. Deben almacenarse en el control de versiones y debe crear una canalización de implementación para enviar los bits desde la compilation a los serveres.

El segundo es su personalización de aplicaciones que se hace con point'n'click. Estos no son versionables en el sentido tradicional y deben considerarse específicos de la instancia. Podría, y probablemente debería, escribir todas las personalizaciones de datos y versiones. Entonces, tendrías una carpeta para cada instancia que envíes con el estado si los datos en el momento de tu envío.