¿Muchos scripts pequeños, un repositorio o varios?

15

Un compañero de trabajo y yo mismo nos hemos encontrado con un problema en el que tenemos múltiples opiniones.

Actualmente tenemos un repositorio de git en el que mantenemos todos nuestros cronjobs. Hay alrededor de 20 crons y no están realmente relacionados, excepto por el hecho de que todos son scripts de Python pequeños y son esenciales para alguna actividad. Estamos utilizando un archivo fabric.py para implementar y un archivo requirements.txt para administrar los requisitos de todos los scripts.

Nuestro problema es básicamente: ¿guardamos todos estos scripts en un repositorio de git o deberíamos separarlos en sus propios repositorios? Al mantenerlos en un repositorio, es más fácil implementarlos en un servidor. Podemos usar un solo archivo cron para todos los scripts.

Sin embargo, esto se siente mal, ya que los 20 cronjobs no están relacionados lógicamente. Además, cuando se usa un archivo requirements.txt para todos los scripts, es difícil averiguar cuáles son las dependencias para un script en particular y todos tienen que usar las mismas versiones de paquetes.

Podríamos separar todos los scripts en sus propios repositorios, pero esto crea 20 repositorios diferentes que deben ser recordados y tratados. La mayoría de estos scripts no son muy grandes y esa solución parece ser excesiva.

Una pregunta relacionada es, ¿usamos un archivo crontab grande para todos los cronjobs, o un archivo separado para cada uno? Si cada uno tiene el suyo, ¿cómo evita la instalación de un crontab sobrescribir los otros 19? Esto también parece una molestia, ya que luego lo harían 20 archivos cron diferentes para realizar un seguimiento.

En resumen, nuestra pregunta y problema principal es si los mantenemos todos juntos como un solo repositorio o los separamos en su propio repositorio con sus propios requisitos.txt y fabfile.py? Sentimos que probablemente también estamos revisando una solución realmente simple. ¿Hay una manera más fácil de tratar este problema?

    
pregunta The Jug 04.11.2011 - 22:15
fuente

2 respuestas

16

A menos que exista una razón específica para que pienses que cada uno de ellos merece un repo individual (¿Crecerán mucho? ¡Probablemente no!), parece más razonable ponerlos todos en uno. Repo, y ahórrese la molestia de clonarlas todas a partir de 20 repos.

Mantener a cada uno en un repositorio separado parece ser la ruta para crear un problema donde no existe un problema.

No cree trabajo extra para usted (y para otros).

    
respondido por el Rook 04.11.2011 - 23:49
fuente
1

A menos que haya una buena razón para la división (rendimiento; preocupaciones de organización / seguridad abrumadoras, etc.) mi instinto es mantener los documentos de origen juntos en el mismo repositorio.

La división de los sistemas en repositorios separados generalmente crea barreras que inhiben la reutilización; Ya que la reutilización es casi la única forma en que una organización tiene que amortizar el costo del desarrollo, cualquier cosa que interfiera en la reutilización es ipso facto, algo malo.

    
respondido por el William Payne 18.06.2012 - 22:11
fuente

Lea otras preguntas en las etiquetas