¿Cuál es el valor de usar el control de versiones?

19

Soy nuevo en el control de versiones (actualmente usando SVN), pero no entiendo cómo esto ayuda a los desarrolladores. ¿Qué hace el control de versiones que lo hace útil en un entorno de desarrollo?

John Ryan
fuente
44
Simplemente lea la excelente serie HOWTO de control de código fuente de Eric Sink: ericsink.com/scm/source_control.html . Por lo demás, no hay mucho que responder aquí o discutir.
Deckard
44
El control de fuente es una de esas cosas que parece inútil hasta que lo necesitas. Entonces te das cuenta de que no puedes prescindir de él. Lamentablemente, para entonces ya es demasiado tarde. Algo así como un seguro contra inundaciones, excepto que encuentro que el control de la fuente tiene una utilidad mucho mayor.
Rein Henrichs
2
@rahmanisback, lo quiere justo después de hacer Archivo | Nuevo proyecto ... lo necesita tan pronto como tenga> 1 desarrollador en el proyecto (mi línea estándar es> 0 desarrolladores, y creo que esto es más cierto ahora que nunca)
Murph
8
Trabajar sin control de versiones es como quitar el comando "Deshacer" del procesador de textos que usa para escribir su ensayo, o eliminar todos los borradores y fluidos correctores de su escritorio.
rwong
2
@rahmanisback Tan pronto como elimine accidentalmente un archivo o pierda datos, por ejemplo. @rwong bonita analogía.
Rein Henrichs

Respuestas:

21

VisualSVN y TortoiseSVN son solo clientes de UI para el servidor SVN. El servidor SVN es el sistema de control de fuente / versión. El sistema de control de versiones es un activo clave para cualquier desarrollo real porque almacena versiones de sus códigos fuente. Cuando utiliza el sistema de control de versiones, solo conserva una copia local de los códigos fuente. La copia principal se almacena en el sistema de control de versiones y confirma los cambios en el sistema.

SVN permite:

  • fácil compartir códigos fuente entre todo el equipo a través del repositorio central
  • copia de seguridad de sus códigos fuente y otros archivos de recursos relacionados con el proyecto
  • manteniendo el historial de cómo cambiaron los códigos fuente
  • puedes volver a cualquier versión guardada en el historial
  • puedes comparar cambios entre versiones
  • puedes ver quién hizo los cambios
  • puede bloquear el archivo para acceso exclusivo para que nadie más pueda trabajar en el archivo
  • puede ver quién está trabajando en cualquier archivo de código fuente o quién bloqueó el archivo
  • puede fusionar cambios en caso de trabajo paralelo en el mismo archivo
  • puedes ver los comentarios asociados con los cambios confirmados
  • con herramientas adicionales puede asociar cambios comprometidos con tareas
  • puede etiquetar / etiquetar la versión para encontrar fácilmente, por ejemplo, lanzamientos de producción
  • puede ramificar el código fuente: cree versiones paralelas donde una rama se pueda considerar como la principal y la otra se pueda usar para probar alguna característica especial o para continuar el desarrollo de la nueva versión del producto, mientras que las correcciones a la versión de producción actual se arreglan en la principal rama
  • puedes combinar cambios entre ramas
  • etc.

VisualSVN es una extensión de Visual Studio que le permite usar el repositorio SVN directamente desde la interfaz de usuario de Visual Studio. TortoiseSVN es una extensión del Explorador de Windows que le permite usar el repositorio SVN directamente mientras explora carpetas y archivos.

Ladislav Mrnka
fuente
+1. Haaa ... después de usar VCS durante más de una década, es realmente difícil responder 'por qué'. Quiero decir, es tan obvio, ¡pero realmente difícil de articular realmente 'por qué' de la manera en que lo has hecho! Gran respuesta.
Dipan Mehta
Creo que AnkhSVN también hace un trabajo asesino al integrar SVN en Visual Studio.
Saul Delgado
6

El control de versiones ofrece una serie de cosas:

  • Archive su software para que pueda ver el estado en que se encontraba en momentos anteriores. Muy útil para encontrar dónde se introdujo un error.
  • Permita que varios desarrolladores en el mismo proyecto compartan y coordinen su trabajo mientras ayuda a evitar sobrescribir el trabajo de los demás.
  • Apoye la continuidad individual y comercial, particularmente a través de un servidor central que esté protegido y respaldado.

Es un mínimo para cualquier trabajo de desarrollo de software más allá de solo retocar para ver qué sucede.

Siempre le advierto a cualquiera que esté trabajando con un sistema de control de versiones por primera vez que evitarlo solo genera problemas. Ellos SE con un problema que cuando miran hacia atrás que SE darse cuenta de que no habría ocurrido si usaban el sistema.

marca
fuente
0

El desarrollador más productivo está solo. Un desarrollador solitario nunca tiene que preocuparse por coordinarse con nadie más. Pero tan pronto como el proyecto se vuelve plural, hay gastos generales. Y por cada desarrollador agregado al equipo, la sobrecarga empeora. Es el trabajo del VCS ayudar a administrar esta sobrecarga y minimizar los efectos.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html

Jace Browning
fuente
8
Incluso un desarrollador solitario necesita control de versiones. El VCS no solo "gestiona los gastos generales" como implica esta cita.
alroc
55
Incluso un desarrollador solitario puede darse cuenta de que hizo algo mal hace una semana y quiere recuperar el código anterior. Incluso un desarrollador solitario podría querer probar un conjunto grande y complejo de refactores sin arriesgar la base de código original.
Gort the Robot
Creo que los aspectos de "copia de seguridad" y "restauración" del control de versiones son obvios para la mayoría, pero no es hasta que te das cuenta de cómo el control de versiones ayuda a reducir la sobrecarga de colaboración que alguien realmente entiende su valor.
Jace Browning