¿Control de versiones para desarrolladores independientes?

60

¿Crees que vale la pena usar el control de versiones si eres un desarrollador independiente, y si es así, por qué? ¿Mantiene el repositorio en su propia computadora, o en otro lugar, donde pueda servir como respaldo?

vedosidad
fuente
54
Me encantaría ver a un farmacéutico preguntar: "¿Debo almacenar los medicamentos de manera organizada o simplemente tirarlos a todos en un cajón? ¿Vale la pena el esfuerzo?"
Erik
23
Imagínense trabajar muy duro durante una semana consecutiva creando esta increíble pieza de software. Luego bórralo. ¿Cómo te sentirías? No es solo almacenamiento. Cuando se rompe algo que funcionó la semana pasada, puede ver y ver qué cambió y, por lo general, ver qué rompió. Todavía veo desarrolladores 'profesionales' con las carpetas backup001 y backup_backup001 mezcladas con su fuente. Forma buenos hábitos cuando aún eres joven.
Erik
@Erik Yuck, las carpetas de respaldo suenan desagradables. Utilizo el control de origen para mis proyectos, aunque no soy muy bueno comprometiéndome a menudo.
vedosidad

Respuestas:

61

Si usa un control de fuente descentralizado (Mercurial o Git o Bazaar o lo que sea), obtendrá ventajas sobre SVN / CVS que lo hacen fácil, útil y poderoso de usar en caso de que sea un indy:

  1. Usted se compromete localmente : su directorio de proyecto es su repositorio con historia COMPLETA. Por lo tanto, no tiene que tener un servidor, se compromete directamente en su repositorio y puede tener varios repositorios en la misma computadora. ¿Usa una computadora portátil que abre a veces para seguir trabajando en sus cosas? ¡Excelente! No tiene que configurar un servidor y si necesita uno más tarde, es fácil y simplemente "empuja" y "tira" los cambios entre los repositorios.
  2. Está hecho para facilitar la experimentación : a menudo necesita tener una idea sobre una función sin contaminar el código. Con SVN y CVS, ya puede usar un sistema de ramificación y deshacerse de la rama si la función no es tan buena como deseaba. Pero si desea fusionar la función con la versión troncal, tendrá muchas sorpresas difíciles de solucionar. Git, Mercurial y Bazaar (al menos) hacen que las fusiones y ramas sean realmente fáciles. Incluso puede duplicar un repositorio, trabajar en él en algún momento, comprometerlo y matarlo o impulsar sus cambios en el repositorio principal si lo desea.
  3. Flexibilidad de la organización : como se señaló anteriormente, ya que tiene repositorios que organiza según lo necesite, es fácil comenzar solo y permitir que otras personas trabajen con usted cambiando su organización. No se impone ninguna organización, por lo que solo tiene que configurarla y listo. A menudo solo presiono / extraigo cambios entre mis propias computadoras (computadora portátil / escritorio / servidor) y todavía estoy solo en mis desarrolladores. Uso Mercurial y eso me ayuda a duplicar mi trabajo, pero también a trabajar en funciones que pensaba fuera de mi computadora portátil, luego continúo trabajando en otras funciones en mi escritorio, luego empujo los cambios de mi computadora portátil en mi escritorio o servidor y fusiono todo el escritorio + portátil y ponerlo (como respaldo y futuro repositorio de trabajo en equipo) en mi servidor.
  4. Ayuda a configurar copias de seguridad : si configura un repositorio central (en GitHub si es público, o en un repositorio privado en BitBucket) puede escribir fácilmente un script que se ejecutará cada vez que se inicia una computadora, y luego pasar dicho script en a tus amigos para que haga copias de seguridad automáticas de tu trabajo regularmente. Es lo que estoy haciendo, así que ahora estoy seguro de que no será fácil perder mi trabajo.

De hecho, actualmente, no tiene excusa para no usar una herramienta fuente de control para ningún proyecto. Porque son más potentes y flexibles que antes y se adaptan a sus necesidades.

Klaim
fuente
66
Siempre hay GitHub .
HedgeMage
8
O bitbucket.org si está usando Mercurial.
Terence Ponce
77
Mercurial con un repositorio de sistema de archivos local en Dropbox funciona realmente bien para un solo desarrollador.
Pieter Breed
1
@Guillaume: Un desarrollador individual puede usar el aspecto "distribuido" de un DVCS. Hago. Por ejemplo, puedo trabajar en la computadora A, presionar mi trabajo en mi llave usb y luego extraer de esta llave usb en la computadora B.
barjak
1
@Guillaume "Distribuido" es un aspecto técnico, no organizativo. Puede usar un sistema de fuente de control centralizado con una organización con integradores a los que solo se les permite validar el código comprometido. Eso es posible pero difícil de configurar debido a la naturaleza centralizada de la herramienta. Pero eso sigue siendo un problema ortogonal.
Klaim
34

el control del código fuente es completamente inútil para desarrolladores independientes, porque como todos sabemos:

  • los desarrolladores independientes nunca cometen errores
  • los desarrolladores independientes nunca realizan revisiones que no funcionan
  • los desarrolladores independientes nunca tienen más de una versión, por lo que no tienen uso para sucursales
  • a los desarrolladores independientes nunca les importa lo que cambiaron ayer o la semana pasada
  • los desarrolladores independientes nunca necesitan copias de seguridad

Llámeme "desarrollador dependiente": los repositorios de Mercurial se clonan fácilmente entre mi escritorio, computadoras portátiles, unidades de respaldo USB y bitbucket.org. ¡Me he vuelto dependiente y me gusta así!

Steven A. Lowe
fuente
66
¿Es esta respuesta sarcástica?
44
@kurtnelle: ¡extremadamente!
Steven A. Lowe
1
Kewlio, solo comprobando.
21

Por qué no?

Soy un desarrollador en solitario y uso BitBucket y Mercurial para mis proyectos personales. Tener la capacidad de revertir y bifurcar su código es demasiado bueno para dejarlo pasar.

Terence Ponce
fuente
8
+1 para BitBucket: ofrecen depósitos privados ilimitados de forma gratuita.
Jon Sagara
2
Los repositorios privados gratuitos son la razón por la que uso BitBucket sobre GitHub.
Terence Ponce
44
repo privado gratis ?? Es posible que me hayas convertido de git a hg.
Gauthier
@Gauthier, sí, BitBucket tiene repositorios privados gratuitos. Sin embargo, no estoy seguro de si son ilimitados.
Terence Ponce
1
Todavía puedes usar git con bitbucket. De hecho, la importación directamente desde github incluye claves ssh. Solo hice el movimiento pero todavía uso git (¡me gusta más!)
Daniel Casserly
1

Encuentro valor en ello, personalmente. Todos mis proyectos se registran en repositorios git (todos los cuales guardo en varias máquinas en caso de una falla de hardware). Las características más útiles son la ramificación (para que pueda ejecutar un experimento que interfiera con la mitad de mi base de código, y no preocuparme por hacer estallar algo permanentemente) y revertir (que básicamente es deshacer con esteroides; en caso de que descubra que hice algo error que está fuera del rango normal de deshacer).

Inaimathi
fuente
1

Si. Es muy muy útil Mi amigo Matt Gallagher publicó este excelente artículo sobre este tema hace solo unos días en su blog de desarrollo iOS / MacOS "Cocoa With Love".

El artículo está centrado en Mac y Git, pero cubre los conceptos básicos.

También puede estar interesado en las siguientes preguntas de StackExchange (y sus respuestas).

orj
fuente
1

¿¿Valor?? ¡Debe! Si no usa el control de fuente, entonces no controla sus fuentes, y eso es malo. No puede diferenciar, no puede revertir, no puede rastrear los cambios: pasará horas tratando de descubrir el error ficticio que acaba de ingresar. Es mejor tenerlo en algún servidor respaldado, pero también puede usar su computadora y usar cualquier método de respaldo que considere apropiado.

Assimiz
fuente
2
De hecho, uso el control de código fuente, pero también tiendo a hacer cosas como la ingeniería excesiva y la adopción de cosas que son excesivas. Soy bien conocido por esto en el trabajo. Por otra parte, no creo que ningún programador donde trabajo, incluido yo, haya trabajado en ningún otro lugar como programador, y la mayoría de nosotros todavía estamos en la escuela secundaria.
vedosidad
1

Absolutamente use el control de fuente. Luego configure un servidor de compilación y automatice sus procesos de compilación y prueba. Activa las compilaciones de tus confirmaciones de origen de tu repositorio central. He estado trabajando solo durante tres años de esta manera y es maravilloso.

Dave Neeley
fuente
0

Si.

Incluso los desarrolladores individuales necesitan a veces ver el estado de su código de alguna revisión anterior. Y siempre es una buena idea hacer una copia de seguridad de todo lo importante, y eso se aplica a todas las personas.

whatsisname
fuente