El mejor método para utilizar un marco de website base al que otros sitios pueden hacer reference

Actualmente estoy buscando un método más eficiente para desarrollar sitios web en mi lugar de trabajo. Alojamos más de 150 sitios, todos con diferentes versiones de nuestro website principal y el marco CMS. Un nuevo website tiende a ser un trabajo de copyr y pegar de lo que creemos que es la última versión. Huelga decir que esto ocupa mucho espacio y es muy ineficiente en términos de hacer las actualizaciones que queremos en todos los sitios, por no hablar de desorderados. (¡No me culpes, soy un empleado nuevo que intenta arreglar las cosas!)

Mi idea inicial es crear un marco base en nuestro server, que contenga todos los files generics, como classs de PHP, funciones, etc. Luego, cada website puede simplemente extraer estos files, solo requiere algunos files de inclusión para realizar la extracción, un file de configuration para cualquier variables no genéricas (como cnetworkingenciales de database) y otros files no generics como hojas de estilo, etc.

Esto plantea el problema de que cuando se realiza una actualización en un file genérico en el marco base, un error matará a todos los sitios que usan ese file. Mis pensamientos iniciales para esto fueron alguna forma de subversión, lo que nos permitió confirmar y revertir las actualizaciones según sea necesario, agregando un pequeño margen de error. Luego podemos hacer actualizaciones en un área de testing, verificar que todo funcione y luego enviar la actualización al repository principal.

Nuestro server ejecuta Linux Red Hat Enterprise 5.3, ¿estoy en lo correcto al pensar que el solo uso de svnserve no nos permitirá hacer reference directa a los files en el repository? ¿Cuál sería el mejor método para hacer esto o existe una forma mejor de boost la eficiencia y disminuir el espacio en disco?

Gracias de antemano.

Un sistema de implementación con guiones probablemente tendría sentido. Por ejemplo, cree un script de shell que pueda extraer una copy del repository y, a continuación, cópielo en el (los) destino (s). Puede darle un número de revisión específico como argumento, para que pueda retroceder a las versiones anteriores.

Hay frameworks integers construidos en torno a esta parte, pero si puedes comenzar con algunos guiones caseros, probablemente serás más adecuado para entenderlos.

Si no tienes experiencia específica con subversión, te sugiero que intentes basarte en git. Es mucho mejor en muchos puntos, no less importante en ser más rápido y se está convirtiendo rápidamente en la herramienta de facto.