Quiero separar files binarys (medios) de mis repositorys de código. ¿Vale la pena? Si es así, ¿cómo puedo gestionarlos?

Nuestros depósitos se están volviendo enormes porque tenemos muchos medios (cientos de files jpegs de 1 MB, cientos de files PDF, etc.).

Nuestros desarrolladores que revisan estos repositorys tienen que esperar un time anormalmente largo debido a esto para ciertos repositorys.

¿Alguien más ha tenido este dilema antes? ¿Lo estoy haciendo de la manera correcta al separar el código de los medios? Aquí hay algunos problemas / preocupaciones que tuve:

  • Si los migro a un server de medios, me temo que podría ser una molestia para el desarrollador. En lugar de hacer actualizaciones a un server, él / ella tendrá que actualizar ahora dos serveres si están haciendo tanto la lógica de progtwigción como las actualizaciones de medios.
  • Si los migro a un server de medios, aún tendré que revisar los medios de comunicación, ¿no? Por lo tanto, el desarrollador tendría que confirmar las actualizaciones del código y confirmar las actualizaciones de los medios.
  • ¿Cómo probaría el desarrollador localmente? Podría hacer que mi sitio use direcciones URL absolutas, por ejemplo, src="http://media.domain.com/site/blah/image.gif" , pero esto no funcionaría localmente. Supongo que tendré que cambiar mi sitio de templates para decidir si es local / de desarrollo o producción y, en base a eso, cambiar el BASE_URL.
  • ¿Vale la pena todo el problema para hacer esto? Nos ocupamos de entre 100 y 150 sitios, no de una docena o más de sitios importantes, por lo que tenemos alnetworkingedor de 100 a 150 repositorys. No tendremos time ni resources para cambiar los sitios existentes, y solo podemos implementar esto en sitios completamente nuevos.
  • Todavía tendría que mantener las secuencias de commands que generan los medios (generadores de PDF) y los medios generados en el depósito de código, ¿verdad? Sería un gran dolor actualizar todos esos generadores de files PDF a files POST en serveres de medios externos, y un dolor extra teniendo en count el almacenamiento en caching.

Agradecería cualquier idea sobre las preguntas que tengo con respecto a la administración de medios y códigos.

En primer lugar, sí, es una buena idea separar los medios y el contenido generado (como el PDF generado) del control de origen.
Eso es por:

  • espacio en disco y time de salida (como usted describe en su pregunta)
  • la falta de la característica de CVS realmente utilizada por este tipo de file (sin diferencias, sin fusión, solo label y twigs)

Dicho esto, cualquier transición de este tipo es costosa de implementar.
Debe separar el process de gestión de versiones (generar los files correctos en los lugares correctos) del process de desarrollo (get de uno o dos materiales referenceles correctos para desarrollar / actualizar sus proyectos)

Los binarys generalmente se dividen en dos categorías:

  • binarys no generados :
    Se guardan mejor en un repository de artefactos (como Nexus, por ejemplo), bajo una label que coincida con la label utilizada para las fonts de text en un VCS
  • binarys generados (como su pdf):
    lo ideal es que no se guarden en ningún repository, sino que solo se generen durante la fase de gestión del lanzamiento para su deployment.