A menudo trabajamos en un proyecto en el que se nos ha entregado un gran conjunto de datos (por ejemplo, un puñado de archivos de 1 GB cada uno) y estamos escribiendo código para analizarlo.Git + un gran conjunto de datos?
Todo el código de análisis está en Git, por lo que todos pueden verificar los cambios dentro y fuera de nuestro repositorio central. Pero, ¿qué hacer con los conjuntos de datos con los que el código está trabajando?
Quiero que los datos en el repositorio:
- Cuando los usuarios primer clon del repositorio, los datos deben venir con.
- Los datos no son 100% de solo lectura; de vez en cuando se corrige un punto de datos o se produce un cambio menor de formato. Si se producen cambios menores en los datos, se debe notificar a los usuarios en la próxima salida.
Sin embargo, no quiero que los datos en el repositorio git:
- git clonación de una copia de repuesto (así que tengo dos versiones en mi directorio personal) se tire unos cuantos GB de datos I ya tengo. Prefiero tenerlo en una ubicación fija [establecer una regla de que los datos deben estar en ~/datos] o agregar enlaces según sea necesario.
- Con los datos en el repositorio, copiar en un disco USB puede ser imposible, lo cual es molesto cuando solo estoy trabajando en cien líneas de código.
- Si se repara un punto de datos erróneo, nunca volveré a mirar la versión errónea. Los cambios en el conjunto de datos se pueden rastrear en un archivo de texto sin formato o por la persona que proporcionó los datos (o simplemente no en absoluto).
Parece que necesito una configuración con un repositorio principal para el código y un repositorio auxiliar de datos. ¿Alguna sugerencia o truco para implementar esto con elegancia, ya sea dentro de git o en POSIX en general? Todo lo que he pensado es, de una manera u otra, un error.
El enlace está desactualizado. Creo que debería ser http://git-scm.com/book/en/v2/Git-Tools-Submodules ahora. –
hecho. Gracias por comentar –
Argumentaría que mantener grandes conjuntos de datos, particularmente si no cambian, en git es excesivo. Mantener los conjuntos de datos fuera de git, y usar una secuencia de comandos simple para copiar o wget o ftp los datos de la fuente sería óptimo. – cpbills