¿Existen ventajas al usar un DVCS para un desarrollador en solitario?

19

En este momento, uso visual svn en mi servidor y tengo ankhsvn / tortoise en mi máquina personal. Funciona lo suficientemente bien, y no tengo que cambiar, pero si puedo ver algunos beneficios de usar un DVCS, entonces podría intentarlo.

Sin embargo, si no tiene sentido o diferencia usarlo sin otras personas, entonces no me molestaré.

Nuevamente, pregunto, ¿hay algún beneficio en usar un DVCS cuando eres el único desarrollador?

Steven Evers
fuente
1
Ver una publicación similar en stackoverflow: stackoverflow.com/questions/179161/… . Todo lo que necesita saber se resume muy bien allí.
ysolik
Entonces mi pregunta se cerró como un duplicado exacto como este. Lamentablemente, esta pregunta no responde a la mía. ¿Ustedes empujan y tiran del maestro cuando son desarrolladores en solitario, o se ramifican y fusionan? Solo estoy tratando de ver cuál es la forma correcta de usar un DVCS cuando estás solo
Chase Florell
1
las copias de seguridad son esencialmente solo otro clon. Eso puede ser muy importante algún día. También las herramientas de git están a años luz de svn.
¿Alguna vez trabajó en una computadora portátil, lejos de su servidor?
JBRWilkinson

Respuestas:

19

¡Si! Creo que el mayor beneficio es el mejor soporte de ramificación + fusión ofrecido por muchos DVCS. Ramificar y fusionar es una especie de dolor en el culo en SVN; es lo suficientemente molesto como para que no valga la pena crear ramas pequeñas y de corta duración para adiciones rápidas de características, correcciones de errores o experimentación, pero la fusión también es lo suficientemente molesta como para crear también ramas duraderas. Por otro lado, ramificar y fusionar es muy fácil en Git, tanto es así que creo una rama (local) para casi todas las correcciones de errores o funciones en las que trabajo.

Creo que las herramientas ofrecidas por Git para visualizar repositorios, registros de grepping, etc., también son mucho mejores que en SVN (aunque eso es más una cosa de Git que específica de un DVCS).

Un DVCS tampoco requiere un servidor central; al usar SVN como desarrollador, debe crear un repositorio local para ingresar, lo cual no es un requisito con Git, ya que cada repositorio contiene el historial completo. Como corolario, archivar un repositorio es solo cuestión de comprimir su proyecto: no hay una "base de datos central" para respaldar.

Comencé a usar Git hace casi cuatro años, después de usar SVN por un tiempo, y no he mirado atrás.

mipadi
fuente
44
Existe la opinión de que los DVCS no hacen que la fusión sea más fácil, pero que los usuarios de DVCS son más expertos en realizar fusiones. Esto da la apariencia subjetiva de fusiones siendo más fácil. Por supuesto, lo que importa es la visión subjetiva.
Richard
3
DVCS no es exclusivamente igual a git
Murph
66
@ Richard Pero eso está mal, las herramientas centralizadas tienden a tener un historial lineal que no admite fusiones complejas.
alternativa
2
@Murph: Esto es cierto, pero yo uso Git, así que lo usé en mi ejemplo.
mipadi
7

Yo uso mucho un DVCS para mis cosas personales. (Soy uno de esos tipos que en $ HOME en git .) Hay varias ventajas:

  • Hace que la replicación entre mi computadora portátil y computadoras de escritorio y de laboratorio sea realmente fácil. Aunque esto también era cierto para SVN ...
  • Puedo comprometerme en la computadora portátil incluso cuando no tengo acceso a Internet.
  • Las copias de seguridad son tan simples como a git pull.
  • Puedo usar git citoolpara dividir muchos cambios en confirmaciones de tamaño lógico, incluso si he realizado muchos cambios no relacionados antes de decidir comprometerme. No conozco una herramienta para hacer esto en Subversion.
  • Cuando tengo que parchear un proyecto de código abierto, es más fácil mantener las cosas organizadas haciendo un nuevo repositorio git en el directorio del proyecto que hacer una segunda copia del árbol de origen que estoy parchando. (No puede hacer esto fácilmente con Subversion porque necesita un repositorio separado en otro lugar de su disco duro por completo).
  • Utilizo las funciones de ramificación fáciles para verificar las revisiones que recibo de otras personas. Por ejemplo, cuando edito un documento de conferencia con mi asesor, a pesar de que no tiene acceso al repositorio, puedo enviarle una copia del documento y verificar sus revisiones en una rama basada en la versión que envié. él, y luego solía git mergefusionar sus revisiones con cualquier cosa que haya hecho mientras tanto .

Git me acostumbró a pensar en todos mis cambios en fragmentos lógicos, mucho más que Subversion.

Ken Bloom
fuente
(o git fetch de un espejo)
5

Mi madre apaga el módem cuando es demasiado tarde para dormir. DVCS me permite continuar trabajando con VCS después de que el módem esté apagado.

linquizar
fuente
1
Lo llamaría "poder trabajar desde un avión" o "poder trabajar cuando bitbucket.com deja de funcionar" pero +1 por cubrir el caso fuera de línea.
Wyatt Barnett
También lugares al aire libre sin red 3G.
linquize
3

Bueno, la respuesta predeterminada sería: "Si (lo que sea que esté usando ahora) funciona para usted, ¿por qué cambiaría?".

Pero sí, incluso si no hay razón para un cambio, encuentro que usar DVCS es algo más fácil que los "modelos más antiguos". Lo siguiente va para Mercurial , que más uso, por lo que su kilometraje puede variar, dependiendo del sistema que vaya a usar.

  • realmente fácil de usar: descubrí todos los comandos que necesito en una hora más o menos
  • todo es local (no necesita el servidor remoto para estar en línea)
  • ramificación / fusión muy fácil: ya ni siquiera piensa en esas cosas
  • clonación fácil (también, un tipo de ramificación) y, en general, una interfaz mucho más amigable para el usuario (me pareció más agradable que git en Windows; también algunos conceptos son más simples; es decir, no requieren pensar de mi parte, por lo tanto conducen a menos retoques con VS y más trabajo realizado)
  • funciona bien con svn

Salto de entrada a una introducción a Mercurial y un blog (bonitos colores ;-) con consejos útiles .

Torre
fuente
Hmm, CVS solía funcionar para nosotros, pero ni de lejos como subversión cuando nos mudamos a él. Los nuevos juguetes te brindan nuevas capacidades, así que precisamente por esta razón estoy viendo si Mercurial ahora podría ser una mejor opción (especialmente cuando uso FogBugz) y también el potencial de veracidad ...
Murph
3
Cambiar de SVN a Mercurial fue una revelación para mí. Fue inspirado por el maravilloso hginit.com de Joel, y nunca he mirado atrás.
Adam Crossland