¿Cuáles son las ventajas de los sistemas de control de versiones que versionan cada archivo por separado?

15

En los últimos años he trabajado con varios sistemas de control de versiones diferentes. Para mí, una de las diferencias fundamentales entre ellos ha sido si los archivos de versión individualmente (cada archivo tiene su propia numeración e historial de versiones independientes) o el repositorio en su conjunto (una "confirmación" o versión representa una instantánea de todo el repositorio) .

Algunos sistemas de control de versiones "por archivo":

  • CVS
  • ClearCase
  • Visual SourceSafe

Algunos sistemas de control de versiones de "todo el repositorio":

  • SVN
  • Git
  • Mercurial

En mi experiencia, los sistemas de control de versiones por archivo solo han generado problemas y requieren mucha más configuración y mantenimiento para usarlos correctamente (por ejemplo, "especificaciones de configuración" en ClearCase). He tenido muchas instancias de un compañero de trabajo que cambia un archivo no relacionado y rompe lo que idealmente sería una línea aislada de desarrollo.

¿Cuáles son las ventajas de estos sistemas de control de versiones por archivo? ¿Qué problemas tienen los sistemas de control de versiones de "todo el repositorio" que los sistemas de control de versiones por archivo no tienen?

    
pregunta Mike Daniels 27.06.2011 - 21:32
fuente

6 respuestas

12

En mi experiencia, no hay ninguno: "todo el repositorio" VCS domina estrictamente "por archivo" VCS.

    
respondido por el Rein Henrichs 27.06.2011 - 23:32
fuente
3

Por archivo tiene una ventaja cuando crea líneas de productos (múltiples productos de software) desde el mismo repositorio.

Algunos entornos de contratación de clientes requieren evidencia de que su código SÓLO tiene los cambios que querían, y no otros cambios. Esto es bastante fácil si los números de versión del archivo son todos iguales.

Y este no es un ejemplo aleatorio que saqué del aire.

Esto sucedió la última vez que envié actualizaciones de software al ejército de los EE. UU. para un sistema que compraron en grandes cantidades a mi empleador anterior. El valor en dólares de los contratos se midió en miles de millones de dólares fraccionados (cuando los dólares estadounidenses valían mucho más)

Así que ayuda algunas veces.

Curiosamente: donde trabajo ahora, también enviamos a cada cliente una entrega diferente ... (Y eso no es algo que decidí, en caso de que te lo preguntes).

Sospecho que es mucho más común en el espacio de defensa / aeroespacial que en las aplicaciones web o de retractilado.

    
respondido por el Tim Williscroft 28.06.2011 - 01:12
fuente
3

No hay ninguna ventaja en absoluto en las versiones por archivo.

Las desventajas por otro lado, son abundantes y manifiestas.

    
respondido por el William Payne 12.06.2012 - 19:31
fuente
0

Podría decir que los sistemas de control de versiones "por archivo" no tienen ninguna ventaja clara aparte de la implementación del VCS. Los programadores de VCS estarían encantados de codificar cuando se trataba de una versión "por archivo". Estoy de acuerdo con el punto de que, surgió históricamente.

    
respondido por el Arvind Chinniah 28.06.2011 - 09:41
fuente
0

No hay ninguna ventaja en el enfoque por archivo cuando tiene archivos relacionados. Cuál es el caso más común en una configuración de desarrollo.

En algunos casos peculiares - / etc o. Los archivos en su directorio de inicio en Unix son los únicos que tengo de manera rutinaria, usted está manejando (en su mayoría) archivos no relacionados. Y luego tener un sistema que insista en mantener sincronizados los cambios no relacionados puede ser una molestia.

    
respondido por el AProgrammer 12.06.2012 - 19:58
fuente
-1

Como lo que realmente desea de un sistema de control de versiones es hacer un seguimiento de cómo cambia el sistema, y dichos cambios solo se relacionan por coincidencia con los archivos en el disco, no mucho.

La mayor ventaja de seguir con un VCS como el CVS es que todos están familiarizados con él, incluso si nadie realmente lo asimila.

El enfoque adoptado por 'git' y otros, es más útil y más cercano al punto real de lo que estás tratando de hacer con un VCS, ¡pero solo una vez que te acostumbras!

    
respondido por el Chris Huang-Leaver 28.06.2011 - 09:59
fuente

Lea otras preguntas en las etiquetas