git para proyectos personales (de una sola persona). ¿Exagerar?

83

Sé, y uso, dos sistemas de control de versiones: Subversion y git. Subversion, a partir de ahora, se usa para proyectos personales donde soy el único desarrollador y git se usa para proyectos de código abierto y proyectos donde creo que otros también trabajarán en el proyecto. Esto se debe principalmente a las increíbles capacidades de mezcla y mezcla de git, donde todos pueden trabajar en su propia sucursal; muy práctico.

Ahora, uso Subversion para proyectos personales, ya que creo que git tiene poco sentido allí. Parece ser un poco excesivo. Está bien para mí si está centralizado (en mi servidor doméstico, generalmente) cuando soy el único desarrollador; Tomo copias de seguridad regulares de todos modos. No necesito la capacidad de hacer mi propia rama, la rama principal es mi rama. Sí, SVN tiene un soporte simple para la bifurcación, pero creo que un soporte mucho más poderoso no tiene sentido. La fusión puede ser un dolor con eso, o al menos desde mi pequeña experiencia.

¿Hay alguna buena razón para que use git en proyectos personales o simplemente es una exageración?

    
pregunta Anto 18.04.2011 - 20:13
fuente

11 respuestas

154

No es una exageración. La razón principal por la que comencé a usar Git y Mercurial sobre Subversion para proyectos personales es que iniciar un repositorio es mucho más fácil.

¿Quieres comenzar un nuevo proyecto?

> git init

BAM! No es necesario configurar un servidor de repositorio ni registrar una estructura de carpetas para admitir sucursales y etiquetas en un repositorio de subversión.

Compartir tu proyecto más adelante es solo una cuestión de: git push (aparte de tener un repositorio remoto). ¡Intenta hacerlo rápidamente con subversión!

    
respondido por el Spoike 18.04.2011 - 21:09
fuente
46

Yo diría que el uso de Subversion para proyectos personales locales es excesivo, mientras que Git definitivamente no lo es. Git ocupará menos espacio (debido al concepto ineficaz de "revisiones" de SVN frente a las instantáneas de objetos de Git), requiere menos configuración ( git init frente a una docena de comandos svnadmin y configuración de permisos, etc.), es más fácil realizar copias de seguridad ( git clone --bare [o git push origin si usa Github o similar] y está listo), y tiene mejores herramientas para administrar su código (la bifurcación es gratuita y la fusión es más fácil y más limpia). El hecho de que nadie más tenga un clon de su repositorio no significa que los beneficios de cualquier DVCS sean "excesivos".

Además, yo diría que el soporte de bifurcación de Git es menos complejo que el de SVN, con mayores recompensas.

    
respondido por el greyfade 18.04.2011 - 20:22
fuente
34

Pensar que nunca ramificarás tu propio código es un poco miope. Ramifiqué mi propio código varias veces, particularmente cuando estaba experimentando con un nuevo enfoque del que todavía no estaba del todo convencido. Eventualmente querrás la función.

Esto viene de un usuario de Subversion desde hace mucho tiempo. Consolidarse en una sola herramienta puede ayudarlo a hacer su vida más fácil.

    
respondido por el Berin Loritsch 18.04.2011 - 20:26
fuente
9

Overkill se reserva para cuando hay daños colaterales causados por la "solución". Usar una pistola para matar a una mosca significa que hay daños causados por la bala que va a otra parte. Es una exageración. Usar algo más poderoso de lo necesario que no cause un problema no es una exageración y puede ser bueno si le ayuda a optimizar su proceso de desarrollo. No causa daño y le permite tener que actualizar solo un conjunto de software en lugar de dos. Entonces, ¿por qué molestarse con dos sistemas en lugar de uno?

    
respondido por el stonemetal 18.04.2011 - 20:21
fuente
7

Uso Git para mis proyectos de una sola persona y me encanta. Anteriormente estaba usando Subversion y aún no he visto una desventaja al usar Git. Es más poderoso, pero no de una manera que complica las cosas simples. Hacer cosas simples innecesariamente complicadas / caras / lentas / etc. Es IMHO una condición necesaria para llamar a algo excesivo. Además, en Github he dividido los proyectos individuales de otras personas para agregar una característica que quería y luego les envié solicitudes de extracción. Me parecería genial si alguien interesado en mis proyectos hiciera lo mismo.

    
respondido por el dsimcha 18.04.2011 - 20:40
fuente
7

I nunca usé el control de código fuente en proyectos personales antes de DVCS, por lo que es un poco extraño imaginar que alguien tome la opinión opuesta. Algunas de mis razones son:

  • Fácil de configurar y derribar. Por ejemplo, un colega me dio un rompecabezas de programación la semana pasada que resolví en varios pequeños pasos. Hice un git repo que duró todos los 45 minutos para mantener mi trabajo, y luego desapareció. No sé cuán fácil es algo así en la subversión, pero nunca he escuchado que alguien lo haga.
  • desconectado. Para mí, poder trabajar sin conexión es mucho más beneficioso para un proyecto de pasatiempo que para el trabajo. No necesito abrir un agujero en el firewall de mi casa o presentar un proyecto públicamente. Puedo colocar temporalmente un repositorio en una memoria USB o una computadora portátil, y aún así mantener todo sincronizado.
  • Todo colocado. Tener el repositorio y el árbol de trabajo juntos hace que sea más fácil hacer un seguimiento de pequeños proyectos durante cosas como las actualizaciones del sistema operativo.
  • características de gran alcance. Claro, no necesito el poder todo el tiempo, pero está ahí cuando lo necesito y no consume recursos cuando no lo hago.
respondido por el Karl Bielefeldt 18.04.2011 - 21:29
fuente
6

Me han dicho que git-bisect es realmente bueno para encontrar el compromiso exacto que introdujo un comportamiento dado, navegando de un lado a otro en confirmaciones dependiendo de su entrada.

Usted tendrá que hacer eso algún día por cosas que simplemente no puede averiguar qué ha sucedido.

EDITAR: Además, la capacidad de bifurcar es muy importante cuando tienes que hacer correcciones de errores en versiones antiguas que usan los clientes. Debe poder administrar "solo arregle esta pequeña cosa, pero no quiero la versión más nueva porque no quiero probarla de nuevo ahora".

    
respondido por el user1249 18.04.2011 - 21:29
fuente
2

Depende de la seriedad con la que quiera hablar sobre la versión de su propio código. Si lo que estás creando es, por ejemplo, una biblioteca simple que solo tendrá la versión actual (o durante el tiempo que sea cierto), personalmente solo usaría una opción de copia de seguridad básica como Dropbox. Si pierdes todo tu código, puedes recuperarlo de la web y Dropbox tiene una copia de seguridad de la versión de 30 días si realmente haces algo estúpido.

Sin embargo, si, por ejemplo, necesita mantener las ramas de producción y desarrollo, entonces git es absolutamente una gran herramienta, y mucho más rápido que svn. No obstante, tenga en cuenta el riesgo de que falle el disco duro si solo almacena los datos de forma local.

    
respondido por el Chris Moschini 19.04.2011 - 02:20
fuente
2

Siempre, siempre, siempre uso un sistema de control de versiones para cualquier tipo de proyecto de desarrollo. Grande o pequeño realmente no importa. Ya sea que esté jugando en casa con algún tipo de tecnología nueva, escribiendo un pequeño ayudante para facilitar mi vida o desarrollándome profesionalmente en un equipo grande y distribuido, siempre querría un sistema de control de versiones que me respalde.

Claro, la mayoría de las veces, para proyectos personales pequeños, no utilizará la mayoría de las funciones, pero configurar un repositorio git (o incluso un repositorio local de Subversion) no es gran cosa, ¡así que adelante! Y antes de que se dé cuenta, querrá saber "maldita sea, ¿cuál fue el contenido del archivo X el viernes pasado?". Sin control de versiones - buena suerte ;-)

Entonces, realmente no importa si usas git o SVN, personalmente estoy empezando a migrar más y más cosas de SVN a git, pero lo principal es usar el control de versiones, incluso para las cosas pequeñas. .

    
respondido por el perdian 19.04.2011 - 14:59
fuente
1

Solo porque nadie lo ha mencionado: para proyectos personales, darcs es realmente bueno, y menos involucrado que git para hacer un control de versiones sencillo. No es tan rápido para proyectos más grandes, pero tampoco lo es Subversion.

    
respondido por el wlangstroth 19.04.2011 - 03:54
fuente
0

Puede ser un poderoso cambio de paradigma mental comprender que lo que hacemos es experimentación. Tener una herramienta barata / fácil para respaldar esto, mejora su capacidad para avanzar, en parte porque mejora su capacidad para retroceder en cualquier experimento cuando resulta deficiente.

Muchos desarrolladores dicen: Bueno, yo solo hago copias de mi código. Pero estas copias se vuelven difíciles de manejar y terminan en desorden. Tiene varias copias y no puede recordar qué copia para qué, y luego trata de averiguar cuándo es seguro eliminarlas.

Todo esto se vuelve aún más valioso cuando el experimento conlleva cambios coordinados en múltiples archivos. Y cuando se trata de un solo proyecto, Git se vuelve aún más simple.

En lugar de preguntarme si debería usarlo en un proyecto en solitario, ahora creo que es una pena que no lo hubiera descubierto antes.

    
respondido por el WarrenT 02.09.2012 - 18:08
fuente

Lea otras preguntas en las etiquetas