¿Cuál es el mejor software de control de fuente?

Alguien ya ha mencionado el DVCS Git, por lo que también voy a mencionar un DVCS diferente. Independientemente, en mi opinión, debe mantenerse alejado de algunos de los sistemas de control de revisión más antiguos, como Subversion (SVN) y sus predecesores / familiares (SCCS, CVS, RCS, etc.). Centrarse en los sistemas de control de versiones “distribuidas” (DVCS). Estos proporcionan formas elegantes de administrar archivos localmente, distribuir esas distribuciones y colaborar con otros en distribuciones distribuidas existentes. Como verá, los viejos sistemas de control de revisión tradicionales se están eliminando gradualmente para DVCS (como Mercurial (hg), Git, Bazaar (bzr) y otros). De ellos, Git y Mercurial son probablemente los dos DVCS más populares (con Git un poco por delante de Mercurial).

El DVCS Mercurial (o “hg”) es muy similar a Git (tanto en función como en popularidad). Mercurial es el DVCS utilizado para hospedar en GoogleCode. Especialmente para las personas nuevas en DVCS (o VCS en general), Mercurial puede ser un poco menos intimidante y tal vez un poco más fácil de aprender que Git. En su mayor parte, Mercurial tiene el mismo conjunto de funciones que Git (aparte de algunas características avanzadas), pero la mayoría de ellos se encuentra detrás de los complementos que deben activarse explícitamente. En consecuencia, el conjunto de funciones básicas (por ejemplo, para crear y trabajar con repositorios básicos almacenados localmente) es fácil de aprender y usar, y se pueden agregar funciones más avanzadas según sea necesario (activando los complementos en el archivo de configuración del usuario o del sistema). ).

Dicho esto, dado que GIt es un programa compilado y Mercurial está implementado en Python, Git tiende a ser un poco más rápido. También hay puntos esotéricos sobre cómo y cuándo Git y Mercurial optimizan los datos almacenados dentro de cada repositorio, por lo que la comparación de la velocidad puede resultar un poco confusa (por ejemplo, los repositorios de Git pueden en realidad disminuir la velocidad con el tiempo si no se mantienen periódicamente; Mercurial no es muy parecido esta). Git y Mercurial fueron diseñados para proporcionar características similares con diferentes compromisos en mente, por lo que hay una variedad de diferencias en la velocidad / eficiencia de almacenamiento / etc.

Tanto git como Mercurial brindan formas fáciles de distribuir sus repositorios a otros, incluso si no aloja repositorios en sitios como GitHub y GoogleCode.

Mercurial: http://www.selenic.com/mercurial/

Git: http://git-scm.com/

¡Buena suerte! Que te diviertas.

Springloops es el mejor software de control de versiones y fuentes Git / SVN en el mercado hoy en día. No solo le permite mantener el código y su historial, sino que también puede revertir la versión cuando lo desee. Permite a las personas trabajar en el mismo código: cooperar, compartir y escribir simultáneamente y resolver conflictos cuando sea necesario.

Además, el control de versiones permite a los usuarios comentar los cambios, ver las estadísticas y organizar mejor el código. No hay mejores herramientas de fuente y versión en el mercado que Springloops http://www.springloops.io .

Mejor por qué motivos?

La subversión es mejor para:

  • Las personas que están acostumbradas a CVS o sistemas centralizados similares y no quieren aprender un nuevo paradigma.
  • Las personas que quieren permisos finos controlan los directorios.
  • Personas a las que les gustan los bloqueos de archivos (aunque un paradigma de bloqueo optimista funciona muy bien en la mayoría de los casos de uso)

Git es mejor para:

  • Personas que no han usado el control de código fuente anteriormente (aunque soy un fanático de SVN, me gustaría comenzar con nuevos usuarios en Git, ya que SVN es muy fácil de aprender. SVN podría ser captado rápidamente por un usuario de Git, pero a la inversa No siempre es cierto.
  • Personas que hacen mucha codificación fuera de línea.
  • Personas que tienen muchas sucursales (las ramificaciones y las combinaciones funcionan mejor y son más fáciles de rastrear en Git, ya que son conceptos de primer nivel. En SVN, están injertadas).
  • Personas que no se preocupan tanto por los permisos de grano fino

Tampoco es tan bueno en

  • Binarios grandes
  • Mensajes de error cuando ocurren cosas extrañas (ambos presentan errores de pista falsa, pero Git es un delincuente peor, presentando mensajes de error que son casi indescifrables cuando ejecuta comandos simples de forma incorrecta).

Elegiría uno de los dos para casi cualquier cosa, porque no hay una razón convincente para usar otra cosa. Sé que mucha gente confía en Mercurial, pero no tengo suficiente experiencia para juzgar, y Git está creciendo más rápido y tiene un alcance más amplio.

Por favor, no lea nada de esto como una acusación a los desarrolladores del producto; han puesto un montón de horas-hombre en un producto gratuito que ha hecho del desarrollo de software un lugar mejor y más seguro, y me han dado la vida en el proceso de soporte de una solución hospedada (ProjectLocker) basada en su producto.

Net-net: si no conoces el control de código fuente, selecciona Git. Se tarda un poco más en aprender pero estarás actualizado. Si ya lo haces, tu llamada. Usamos ambos internamente, pero nuestros nuevos proyectos generalmente están en Git.