Usamos SVN para nuestro control de revisión de código fuente y estamos experimentando su uso para archivos que no son de código fuente.Sistema de control de versiones escalable (medio millón de archivos)
Estamos trabajando con un conjunto grande (300-500k) de archivos cortos (1-4kB) de texto que se actualizarán regularmente y necesitan una versión que lo controle. Intentamos usar SVN en modo de archivo plano y se está luchando para manejar la primera confirmación (500k archivos registrados), lo que lleva aproximadamente 36 horas.
Diariamente, necesitamos que el sistema pueda manejar 10k archivos modificados por transacción de compromiso en un tiempo corto (< 5 min).
Mis preguntas:
- Es SVN la solución adecuada para mi propósito. La velocidad inicial parece demasiado lenta para el uso práctico.
- En caso afirmativo, ¿hay una implementación de servidor svn particular que sea rápida? (Estamos usando actualmente el servidor SVN por defecto GNU/Linux y el cliente de línea de comandos.)
- En caso negativo, ¿cuáles son los mejores// alternativas comerciales OSS f
Gracias
Editar 1: Necesito control de versiones porque varias personas estarán modificando simultáneamente los mismos archivos y estarán haciendo diff/merge/resolve-conflicts manualmente de la misma manera que los programadores editan el código fuente. Por lo tanto, necesito un repositorio central en el que las personas puedan verificar su trabajo y verificar el trabajo de los demás. El flujo de trabajo es prácticamente idéntico a un flujo de trabajo de programación, excepto que los usuarios no son programadores y el contenido del archivo no es el código fuente.
Actualización 1: Resulta que el principal problema era más una cuestión de sistema de archivos que una cuestión de subversion. Para SVN, la confirmación de un único directorio con medio millón de archivos nuevos no finalizó incluso después de 24 horas. La división de la misma en 500 carpetas dispuestas en un árbol de 1x5x10x10 con 1000 archivos por carpeta dio como resultado un tiempo de compromiso de 70 minutos. La velocidad de confirmación disminuye significativamente con el tiempo para una sola carpeta con gran cantidad de archivos. Git parece mucho más rápido. Se actualizará con los tiempos.
Si está haciendo lo que creo que está haciendo, buscaría algún tipo de CMS. – erikkallen
Como otros señalaron: podría valer la pena explicar lo que está tratando de resolver en general, ya que un sistema de control de versiones * puede * ser la solución incorrecta (al menos no la más eficiente) para su problema. – paprika
O lo que dijo erikkallen arriba, o un sistema de archivos con soporte integrado de instantáneas. Más detalles sobre el problema serían buenos para determinar si el control de la versión es la solución correcta para el problema. – Juliano