turtle software framework control best svn git mercurial version-control

svn - software - git version control



Git vs Mercurial vs SVN (3)

Posibles duplicados:
Para proyectos en el hogar, ¿Mercurial o Git (u otro DVCS) pueden ofrecer más ventajas que Subversion?
¿Cuáles son las fortalezas y debilidades relativas de Git, Mercurial y Bazaar?

¿Cuáles son algunas de las diferencias entre estos sistemas de control de fuentes? ¿Cuál es el mejor para un pequeño proyecto de 2 personas?


Git y Mercurial son bastante similares (pero lo suficientemente diferentes como para merecer precaución). SVN, por otro lado, es bastante diferente: los dos primeros son VCS distribuidos, por lo que no requieren un servidor central, mientras que SVN sí. En general, muchos proyectos se están moviendo hacia sistemas distribuidos.

Para su pequeño proyecto, probablemente esté mejor con Git o Mercurial. El que elijas es esencialmente una cuestión de gusto, aunque prefiero a Git (y estoy mucho más familiarizado con él). No necesita configurar un servidor en absoluto: puede hacer push / pull cambios a través de SSH o incluso parches de correo electrónico entre sí (esto se puede hacer directamente desde el VCS, pero es una especie de molestia). Puede configurar un servidor central en cualquier momento, y todos los cambios estarán allí. Puedes usar, por ejemplo, GitHub o Gitorious para alojar tu proyecto (si vas con Git, no sé sobre Mercurial).


Para empezar, está el lenguaje en el que están escritos. Mis experiencias con Git y Mercurial han sido muy similares, pero sé que si quiero ajustar Mercurial, puedo hacerlo, porque está escrito en Python. Git está al menos algo en C, con lo que no estoy tan familiarizado.

Git y Mercurial son lo que se llama distribuido. Cada copia se crea igual, y pueden empujar y tirar (usando esa terminología) los cambios unos de otros en una base ad-hoc. Subversion, por otro lado, consiste en un único repositorio central, y cada copia de trabajo es un esclavo de ese servidor central, empujando y tirando (comprometiendo y actualizando, en este caso) los cambios desde él y solo.

Instalar Git o Mercurial para un par de personas consiste en obtener acceso SSH al mismo servidor e instalar un par de paquetes. Mientras que para SVN, por lo que sé, necesita configurar y ejecutar una aplicación de servidor real en Apache, y luego meterse con un certificado SSL y .htaccess, etc. para asegurarlo.

Para todos mis proyectos personales, voy con Mercurial o Git. Si estuviera trabajando con un equipo grande, probablemente iría a Subversion porque obtendría autenticación centralizada y hosting. Pero para dos personas, elegiría una de las distribuidas, porque entonces no tiene que meterse con la autenticación centralizada y el alojamiento. :-)


SVN es diferente de Git y Mercurial, ya que es un repositorio único al que todos los usuarios tienen que tirar y comprometerse.

Git y Mercurial tienen un modelo distribuido. Esto significa que hay un repositorio en cada computadora y que generalmente hay un repositorio "oficial" del que las personas elegirán realizar sus cambios y extraer.

Git y Mercurial son extremadamente similares. Prefiero Mercurial porque me pareció mucho más fácil de usar. Para un equipo de 2 personas recomendaría Mercurial, pero esa es solo mi opinión. Si no está familiarizado con el control de versiones, tendrá que perder el tiempo aprendiendo a utilizar cualquiera de las opciones, pero Mercurial me pareció el más fácil.

Para iniciar un repositorio de Mercurial, todo lo que tiene que hacer es abrir un shell y un cd en el directorio en el que desea tener control de versión y hg init . Eso crea el repositorio. Para agregar todo en la carpeta al repositorio, escriba hg add . . Aquí hay algunos otros comandos diferentes:

  • Para confirmar los cambios locales: hg commit -m "Descriptions of changes"
  • Para acceder a la última versión del servidor: hg pull
  • Para impulsar los cambios locales: hg push