Carpetas de intercambio de control de versiones

He golpeado una panetworking tratando de hacer lo siguiente:

tengo mi propio framework / cms que uso para múltiples sitios web. Todos usan los mismos files y cada website tiene la capacidad de "extender" ciertas partes del cms.

Me gustaría que todos los sitios compartan los files cms y también permitir la adición de files específicos del website sin agregarlos al repository principal.

la estructura cms es:

  • administración
  • componentes
    • artículos (ex)
  • bloques
  • complementos
  • temas

los sitios web pueden tener sus componentes y temas específicos

así que un ejemplo de website1 contendría

  • administración
  • componentes
    • artículos
    • mycustomcomponent
  • bloques
  • complementos
  • temas
    • mycustomtheme

Actualmente estoy usando externalidades en el cms principal, pero eso significa que los files personalizados se están obteniendo en todos los sitios web.

de todos modos, puedo hacer que los sitios web compartan todos los files y les permita extender ciertos directorys.

Aclamaciones

Debería poder administrar esto a través de la bifurcación . Los cambios para sus files principales pueden realizarse en su línea principal y fusionarse en sus sucursales. (Es posible que desee configurar un enganche o un enganche postcompromiso para simplificarlo o deberá fusionar uno por uno). Para trabajar en los files específicos del sitio, puede cambiar a la twig correspondiente y editarlos desde allí.

Supongo que, como tiene una separación basada en el directory del núcleo y complementos, puede usar externos. Es decir:

  • En repo especial (o ruta dentro del repository común) colocas CMS-tree
  • El sitio de cada cliente también puede tener un repository propio o una ruta base dentro del repository común.
    • Primer nivel de tree de cms de tree de repetición de sitio
    • El segundo nivel de site-tree es una mezcla de carpetas "virtuales", que se vinculan mediante svn: externos y carpetas reales, que contienen adiciones específicas del sitio

De esta forma, la integración de cms-functionaly en el sitio es una cuestión de agregar-eliminar "ladrillos" en la list externa.