2009-06-18 9 views

Respuesta

22

supongo que usted también lea Bazaar vs. Git artículo, pero al final, todo se reduce a lo que está buscando en términos de "gestión de código rico en funciones" .

  • Si, por gestión de código, se está refiriendo a archivo (y directorios y cambio de nombre), ir con Bazar.

  • Si, por gestión de código, que busca en gestión de contenidos, Git está diseñado para manejar sólo que (el área de ensayo, por ejemplo, le permite grabar lo que contenido actual que desee confirmar, incluso aunque ya ha empezado a hacer algo de gran modificación que terminan por no querer comprometerse en la rama actual)

para estar seguro, vuelva a leer Linus's original vision para Git (en abril de 2005). Si está de acuerdo, es probable que Git entregue lo que desea. En resumen:

  • modelo muy simple (blob-árbol-commit-tag)
  • sin metadatos añadido (para el seguimiento de cambio de nombre, por ejemplo)
  • principios "fuertes" como:
    • "archivos" no importan. Lo único que importa es cómo se movió el "contenido" en el árbol
    • Tiene un SCM que rastrea qué cambió en el único nivel que realmente importa, es decir, todo el proyecto. Ninguna de la información en realidad hace ningún sentido en absoluto a una granularidad más pequeño, ya que por definición, un "proyecto" depende de los otros archivos, o no sería un proyecto

Eso " la noción de proyecto" es en realidad una fuerza de un a limit de Git en términos de gestión de proyectos: usted no debe tratar de poner todo lo en repositorio Git uno.

+4

No estoy seguro exactamente qué quiere decir con "archivo" versus "contenido". Bazaar ya le permite seleccionar cuidadosamente qué archivos quiere enviar a una sucursal, por lo que no veo qué se gana al tener un área de preparación. No veo cómo puede * no * querer que se rastree la información del archivo. Por ejemplo, en Java, realmente necesita asegurarse de que todos los archivos tengan el nombre correcto, pero sigue siendo importante sin importar cuál sea el proyecto. Cuando pienso en la administración de "archivos", pienso en el control de versiones de sourcesafe & cvs, que bazar definitivamente no es. – FryGuy

+1

@FryGuy: puede ser que esta respuesta sea un poco más explícita: http://stackoverflow.com/questions/995636/popularity-of-git-mercurial-bazaar-vs-which-to-recommend/995799#995799 – VonC

+0

@ FryGuy: git puede detectar cambios en los archivos. Por ejemplo, supongamos que tiene un archivo con dos funciones y lo divide en dos funciones. Simplemente no puedes rastrear esto usando el cambio de nombre. Git y su detección de cambio de nombre pueden hacer esto, y funciona muy bien en mi opinión (pero es lento, muy lento en comparación con otras operaciones de git, puede tomar hasta 10-15 segundos para archivos grandes). Tengo un ejemplo aquí: http://cournape.wordpress.com/2009/05/12/why-people-should-stop-talking-about-git-speed/ Para mí, esto + ramas baratas son las dos características asesinas de git en comparación con otras herramientas. –

12

Todo se reduce a preferencias personales, simple y llanamente.

Utilizo Bazaar y me resulta extremadamente fácil. La puesta en escena es un concepto en Git que ofrece una buena flexibilidad pero también agrega complejidad. Puede fácilmente administrar código en Bazar con algo así como 4 comandos (agregar, confirmar, fusionar (tal vez presionar/arrastrar) y registrar o qlog), y solo necesita fusionar si quiere múltiples ramas.

Por lo general, Bazaar parece hacer lo correcto. Nunca tuve un problema con eso haciendo algo estúpido o dejándome hacer algo estúpido.

9

Creo que depende de su gusto personal - hay argumentos a favor tanto de ellos. He usado bzr extensivamente para proyectos personales durante un par de años, desde los 0,8 días, pero el año pasado cambié a Git y nunca miré hacia atrás, al menos para la gestión de código fuente.

me da pereza volver a escribir mi propia impression, pero para resumir:

  • bzr funciona de manera más consistente a través de plataformas
  • bzr es más fácil de encontrar (si se le da la herramienta wo cualquier documentación, cualquier usuario semi-competente será capaz de utilizar bzr, eso no es tan cierto con GIT)
  • bzr es más fácil de extender de una manera API, Git es más fácil de extender de una manera UNIX (tuberías)
  • git es inmensamente más poderoso en mi humilde opinión; en particular, estoy convencido de que su enfoque para el cambio de nombre y el seguimiento de contenido es el correcto para muchos casos
  • el sistema bzr revno no es bueno en mi humilde opinión. Parece más simple, pero es profundamente confuso una vez que comienzas a tener muchas ramas y cambias la línea principal.
1

Lo único que Git hace mucho, mucho mejor es manejar muchas ramas. Lo hace mucho más rápido que bzr, y no requiere múltiples copias del código fuente. Todas las ramas están dentro del mismo directorio. Me encuentro usando git branches mucho más a menudo de lo que solía hacer con bzr, especialmente porque mi repositorio no es pequeño y también involucra archivos binarios (180 MB en total).

EDIT: En realidad, estoy equivocado. --no-trees + checkout liviano funciona como Git. Gracias, FryGuy. Ah, y encontré this blog entry que tiene información útil.

+0

Puede lograr el mismo flujo de trabajo en bazar. Esa es una de las características que me gusta, ya que puede usar cualquier flujo de trabajo que desee, en lugar de la "manera Git" de hacer las cosas. Ver - ramas de árbol, y - cajas de luz y 'interruptor de bzr 'entre las ramas (como carpetas en su disco). – FryGuy

+0

Todavía tendrá varias copias del código fuente, una para cada rama, por lo tanto, es el mismo flujo de trabajo, pero no es el mismo enfoque. De todos modos, cuando use bzr, debe usar ramas apiladas, es mejor que las cajas livianas. –

+5

No, no tendrá múltiples copias del código fuente. Eso es lo que hace "no-árboles". Tengo más de 70 sucursales en mi proyecto actual y solo una copia del código fuente en mi disco duro (al menos en bazar, tengo algunas otras instantáneas antes de comenzar a usar bazar). Mi carpeta .bzr tiene ~ 190 megas, y mi árbol fuente es 1.76gigs, así que me percataría si estuviera allí varias veces. – FryGuy

1

Bazaar está muy bien integrado con ubuntu, he estado usando ubuntu desde hace muchos años, cansado de cambiar a otra distribución más geek, pero no tiene sentido. Elijo bazar sobre git/mercurial Coz Bazaar. Las notificaciones están muy bien integradas en Ubuntu. Además, obtienes alojamiento gratuito desde Launchpad, que es una gran ventaja.

+0

No es una ventaja ya que también puedes obtener un hosting gratuito de Git de GitHub y otros. –

7

desarrollo del bazar se ha detenido. La última versión es 2.6, con fecha de 2013-08-04. Ha habido less than 20 commits since then en abril de 2015.

Si está comenzando con el control de versiones, debe considerar uno que esté activo (lo más probable es que sea Git o Mercurial).

Edición 1: se realizó una versión 2.7 desde mi publicación, pero no cambia el hecho de que el proyecto está esencialmente muerto con ~ 10 confirmaciones/año.

Editar 2: ahora hay un tenedor de bazar llamado Breezy con más actividad que Bazar. Dudo que esto se convierta en un proyecto realmente activo, pero al menos esto significa que la herramienta se mantiene (debería sobrevivir al final de Python 2, por ejemplo, uno de los objetivos de Breezy es portar a Python 3).

+0

Parece que se está desarrollando nuevamente http://doc.bazaar.canonical.com/beta/en/whats-new/whats-new-in-2.7.html – skan

+0

El enlace que señala habla sobre la última versión, 1 año hace. Ha habido [3 confirmaciones en 2017 y no se ha confirmado en 2018] (http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/changes/). Yo no llamaría a este mantenimiento activo ;-). Breezy OTOH parece razonablemente activo (aunque no es una actividad comparable a hg o git). –

1

La mejor razón para usar git vs bzr/hg es porque github rocks. Launchpad está bien, pero github obtiene la búsqueda, el estilo social y correcto.

Técnicamente plataforma de lanzamiento es probablemente mejor en muchos sentidos. Fusiones, sistemas de compilación integrados y otras características hacen que launchpad sea atractivo para muchos. El editor incorporado en github, las ideas ... hay un flujo allí que launchpad no tiene. Visualmente, socialmente, no hay competencia.

Cuestiones relacionadas