Como lo describe, ya tiene algún tipo de control de versión, aunque actualmente hay algunos problemas con él en comparación con un control de versión típico:
Un compromiso intencional en el control de versión indica que el desarrollador cree firmemente que el estado actual del sistema se construirá correctamente.
(Existen excepciones, como sugiere El comentario de Jacobm001 . De hecho, varios enfoques son posibles, y algunos equipos preferirían no tratar de hacer cada compromiso posible para construir. Uno es tener construcciones nocturnas, dado que durante el día, el sistema puede recibir varias confirmaciones que no se construyen.
Como no tiene confirmaciones, su sistema a menudo dará como resultado un estado que no se compila. Esto le impide configurar la integración continua .
Por cierto, un sistema de control de versiones distribuido tiene un beneficio: se pueden hacer confirmaciones locales tanto como sea necesario mientras se lleva el sistema a un estado donde no se puede compilar, y luego hacer una confirmación pública cuando el sistema es capaz de compilar .
-
El control de versiones le permite imponer algunas reglas en la confirmación . Por ejemplo, para los archivos de Python, se puede ejecutar PEP 8, lo que evita la confirmación si los archivos confirmados no son compatibles.
Culpa es extremadamente difícil de hacer con tu enfoque.
-
Explorando qué cambios se hicieron cuando y quién es difícil también. El control de versiones registros , la lista de archivos modificados y a diff
es una excelente manera de encontrar exactamente lo que se hizo.
-
Cualquier combinación sería una molestia (o tal vez los desarrolladores ni siquiera verían que sus colegas estaban modificando los archivos antes de guardar los cambios). Usted declaró que:
Es raro que dos programadores trabajen en el mismo proyecto
Raro no significa nunca, por lo que las fusiones se producirían tarde o temprano.
-
Una copia de seguridad cada quince minutos significa que los desarrolladores pueden perder hasta quince minutos de trabajo . Esto siempre es problemático: es difícil recordar exactamente qué cambios se hicieron mientras tanto.
-
Con el control de código fuente puede tener mensajes de confirmación significativos. Con las copias de seguridad, todo lo que sabe es que fueron x minutos desde la última copia de seguridad.
Un control de versión real garantiza que siempre pueda volver al compromiso anterior; Esta es una gran ventaja. Revertir una copia de seguridad utilizando su sistema sería un poco más difícil que hacer una reversión de un clic , lo que puede hacer en la mayoría de los sistemas de control de versiones. Además, en su sistema, Ramificación es imposible.
Hay una mejor manera de hacer el control de versiones, y ciertamente deberías considerar cambiar la forma en que lo haces actualmente. Sobre todo porque, como Eric Lippert menciona a , su sistema actual es probablemente mucho más doloroso de mantener que cualquier sistema de control de versiones común. Tener un repositorio Git o Mercurial en una unidad de red es bastante fácil, por ejemplo.
Nota: Incluso si cambia a un sistema de control de versión común, debe tener una copia de seguridad diaria / semanal de los repositorios. Sin embargo, si está utilizando un sistema distribuido, es menos importante, ya que entonces cada copia de trabajo del desarrollador también es una copia de seguridad.