¿Un DVCS es útil para un desarrollador?

¿O sería un VCS cliente-server convencional más apropiado? Actualmente estoy usando TortoiseSVN, pero estoy interesado en un DVCS, pero no estoy seguro si es una buena idea tratar de usar algo como ese solo.

Como todavía puede presionar a otra máquina que también ejecute Git / Mercurial / Bzr / etc, todavía tiene la security de copy de security de múltiples computadoras, que con suerte tendrá de cualquier manera. Sin embargo, si alguna vez codificas mientras viajas, tener acceso completo al repository puede ser una gran ventaja, luego solo vuelve a sincronizar con tu server cuando tengas una connection de networking nuevamente / llega a casa / etc.

Sí. Un DVCS es, en mi opinión, incluso más adecuado para el desarrollo en solitario que un sistema tradicional basado en server. Muchas de las características de los sistemas basados ​​en serveres son solo complicaciones innecesarias cuando hay un único desarrollador.

Por otro lado, probablemente no notará ninguna diferencia importante de productividad entre un DVCS y SVN si está solo.

Creo que sí. Por un lado, escalará mucho mejor si usa múltiples computadoras porque la fusión es mucho más fácil. En segundo lugar, puede comprometerse fuera de línea, lo que es, bueno, genial en general.

Recomiendo seriamente ir con uno distribuido. En Windows, elegí Mercurial y he estado muy contento con él.

Grandes pros:

  • Las confirmaciones locales son rápidas, pueden comprometerse a menudo (Prueba, Código, Refactorio, Confirmar)
  • La ramificación es simple
  • Puedes comprometerte donde sea que estés.
  • Fácil de mover files (No más lío como el que uso para entrar con SVN)
  • Simplemente más simple. Un software lo hace todo (incluidas las tareas administrativas)
  • El sistema de files es más limpio. No más .svn en todas partes, solo una carpeta
  • La list de files ignorados es solo otro file en el repository y se copy automáticamente a cada clon. Es más fácil mantenerse limpio que SVN nuevamente.
  • Bitbucket.com es agradable y ofrece un repository privado gratuito

Contras:

  • (Para algunos) las herramientas GUI no están ahí
  • Es probable que aún necesite SVN para conectarse a varios repositorys de origen. Por ejemplo, necesito usar dos sistemas.

Sí. Hay dos razones principales por las que cambié a DVCS (Git y Mercurial) para mis propios proyectos de hobby. Primero está la cuestión de mantener copys de security y la otra es que viajo mucho y uso varias computadoras geográficamente separadas .

Copia de security rápida y fácil

Trabajo con al less dos clones de repository. Una es la obvia local que está en mi espacio de trabajo, la otra es una que guardo en mi server de files (o en un repository en línea como github o bitbucket ) que voy a volcar cada vez que termino con cosas localmente. Hacer la copy de security es tan simple como sincronizar los repositorys, en otras palabras, impulsar los cambios en sentido ascendente.

Trabaja en diferentes ubicaciones o computadoras

Esto es probablemente algo que es un escenario less común para los desarrolladores con proyectos de hobby porque tiendo a viajar. Aparte de mi computadora en casa, a veces me quedo con mis padres, donde guardo mi computadora vieja (que es lo suficientemente rápida para la progtwigción de pasatimes). Cada vez que tengo ganas de hackear nuevas funciones, puedo hacerlo en esa computadora y luego sincronizar repositorys para recibir esos cambios cuando vuelva a casa.

Fácil ramificación / fusión

No es un secreto que DVCS maneja la bifurcación / fusión bastante automágicamente. Los conflictos de combinación suceden, pero incluso sin ellos en una versión centralizada, las herramientas de control, por ejemplo Subversion, realmente no ayudan mucho con la fusión incluso en escenarios simples. A pesar de que no uso esta característica tan a menudo para proyectos personales, hay algunos desarrolladores que lo hacen.

Conozco a un contratista de progtwigción que usó git para realizar un seguimiento de su propio trabajo en un sistema propietario de la empresa que todavía usa SourceSafe para el control de versiones. Git le facilitó el seguimiento de las correcciones separadas ramificando cada arreglo a pesar de que tenía que fusionar los files manualmente al final. Cuando llegara el momento de que él registrara los files en SourceSafe, estaría mirando los diffs en las diferentes twigs para ver qué cambios se necesitaban y luego hacerlos. Digamos que la mayor parte de su time lo pasó esperando que sus compañeros lo alcanzaran.

Para un solo desarrollador, cada VCS servirá. Yo elegiría uno, es fácil de configurar y exige poca o ninguna configuration. Personalmente me gusta Monotone . Fue uno de los primeros y todavía lo considero uno de los mejores.

En realidad, lo más divertido que he tenido fue cuando uso darcs , pero está escrito en un lenguaje bastante feo (Haskell) y en realidad ya era bastante doloroso buildlo en Mac OS X desde la fuente.

Se dice que Git es un buen sistema, pero no me gusta que conste de varios binarys y scripts, etc. Lo que realmente me gusta de los sistemas como Darcs y Monotone es que hay un binary … y eso es todo. Sin desorder de binarys, sin guiones en este o aquel idioma, en binary y lo hace todo.