tipos tag remove practices etiquetas crear commits best git version-control devtools

tag - ¿Git está listo para ser recomendado a mi jefe?



git tags best practices (13)

Quiero recomendar Git a mi jefe como un nuevo sistema de control de fuente, ya que estamos atrapados en los 90 con VSS (ouch), pero ¿las herramientas y el soporte de terceros ya son lo suficientemente buenos?

Específicamente, estoy hablando de interfaces GUI similares a TortoiseSVN, compatibilidad visual dig / merge visual decente, así como cosas como notificaciones de confirmación de correo electrónico y soporte general de terceros como IDE y sistemas de compilación.

Aunque esto será utilizado por los programadores, realmente necesitamos este tipo de cosas en nuestro equipo. No quiero dejar a todos atrapados con una nueva herramienta, e incluso un nuevo paradigma de control de fuente (distribuido), con nada más que una aplicación de línea de comandos y algunos tutoriales en línea. Esto sería un paso atrás.

Entonces, ¿qué piensas ... está listo Git? ¿Qué herramientas decentes existen para Git y qué aplicaciones de desarrollo de terceros lo admiten?

EDITAR: Mi pregunta original era bastante vaga, así que la actualicé para pedir específicamente una lista de herramientas disponibles y soporte de terceros para Git. Tal vez podamos obtener una publicación wiki de la comunidad con una lista de cosas.

Tampoco considero que ''usar subversión'' sea una respuesta adecuada. Existen otras razones para usar un sistema de control de fuente distribuido que no sea la edición sin conexión, siendo las sucursales privadas y baratas una de ellas.


¿La mayoría de las empresas de cualquier tamaño típico realmente necesitan control de fuente distribuida ?

Git funciona bien para proyectos de código abierto donde personas de todo el mundo colaboran en un proyecto en tiempos muy diferentes, donde la validez de los registros está determinada por el mérito y una red de confianza.

En una empresa donde, por ejemplo, una confirmación requiere análisis de control de calidad o la aprobación o documentación de un administrador de configuración, o para conciliar un número de revisión con eso en un informe de error, yo diría que el control distribuido como Git realmente no tiene sentido, en el sentido de que el cambio de paradigma no está garantizado; que aún no encaja bien con los procesos CM existentes (un problema social); que no se integra bien con herramientas existentes, de terceros y de otra manera; y que tiene poca compatibilidad con Windows.

No es que no sea bueno; es que soy bastante escéptico para creer que es la herramienta adecuada para la mayoría de los entornos corporativos. Espero con interés algunas de las otras respuestas para una mejor comprensión.


Cuando se trata de herramientas gráficas para git , la única herramienta útil que he usado hasta ahora es gitk (que visualiza el árbol de revisión por ti) y he estado usando git durante el último medio año, como alguien más lo puso aquí , TortoiseGit todavía es muy temprano y tiene algunos problemas para resolver.

En el trabajo, hemos estado evaluando tres DVCS diferentes (a saber, git, mercurial (hg) y bazar ) y tuvimos una velada completa presentándolos para el resto de la compañía. Mercurial recibió la respuesta más positiva y hay una variante de Tortuga .

Sugeriría que hagas lo mismo. Encuentre a alguien que pueda presentar alguna alternativa a git (como mercurial o bazaar) y haga una presentación juntos en DVCS en su compañía. Es más importante decirles a tus compañeros de trabajo cuán asombroso es DVCS que el jefe, porque al final lo usarán. Por lo tanto, es más educativo si han estado expuestos a tales herramientas y lo prueban por sí mismos.

Cuando lo presentamos también asumimos que las personas no hacían el control de versiones, por lo que explicamos rápidamente los conceptos básicos, como checkin-checkout vs. commit-merge y por qué las personas controlan la versión . Básicamente era como los artículos de Eric Sink sobre el control de versiones, pero despojado de lo esencial.

Como vas a pasar de VSS (y lo siento mucho ) es posible que quieras echarle un vistazo a SVN . Sin embargo, como lo veo, la única diferencia entre el enfoque distribuido y centralizado es la complejidad añadida de compartir el código a través de una red de búsqueda entre pares.


Depende del equipo Si formas parte de un equipo con conocimientos tecnológicos, entonces git es maravilloso (ya menudo más que maravilloso). Pero si algunas personas no se sienten cómodas en la línea de comando, podría haber algún problema (porque tortoisegit está en su infancia y todas las otras GUI que he encontrado, francamente, apestan).

Si tienes que tratar con gente no tan tecnológica (diseñadores, gerentes superiores, etc.), me iría con algo así como la subversión. TortoiseSVN es maravilloso (y bastante fácil de usar), y svn tiene tal vez el 80% del increíble git.


Hay un muy buen elenco de pod sobre GIT .


La GUI predeterminada de git para Windows es horrible y tiende a quedarse atascada en los loops de reescaneo. Ahora uso el cliente de línea de comandos, lo cual parece correcto siempre que puedas lidiar con el uso de vi para hacer tus entradas de registro. Acabo de empezar a usar github, que está bien, pero tiene una navegación desagradable.

Personalmente, uso Subversion con Apache para casi todo lo que hago. Subversion funciona muy bien, está bien documentado, es fácil de configurar y gratis.


Pasar de VSS a Subversion va a ser una gran actualización. Subversion te ofrecerá excelentes funciones como commits atómicos, gran GUI, integración con IDE, gran experiencia de Windows, el concepto de un conjunto de cambios, un repositorio confiable, etc. Para una compañía típica de Windows con equipos pequeños / medianos, creo que la subversión es una gran herramienta.

Si está interesado en un VCS distribuido, entonces debería estar mirando git, hg, bzr. hg y bzr están por encima de git en lo que Windows admite. Sin embargo, hay una versión de línea de comando portada de git para Windows (msysgit) que fusiona los cambios a git principal. Además, la comunidad git está creciendo rápidamente y, por lo tanto, espero que mejore la experiencia de Windows.

Git admite un escenario híbrido donde el servidor puede ser CVS / SVN y los desarrolladores individuales pueden usar git-svn para trabajar localmente y administrar las sucursales locales. Este tipo de configuración ofrece lo mejor de ambos mundos. Sin embargo, git-svn es escamoso en Windows debido a una dependencia en las bibliotecas Perl SVN. En este escenario, no es tan fácil usar buenas características de git como los desarrolladores que comparten sucursales, etc.

Dado que sus proyectos no son de código abierto, creo que es probable que Subversion proporcione todas las funciones que necesita. Una vez que Git esté a la altura de la barra de usabilidad de Windows que necesita, puede importar sus repositorios SVN en Git.

A menos que su empresa tenga muchas ramificaciones y fusiones, yo elegiría SVN, de lo contrario, tendrá que considerar un DVCS de cerca.

He estado trabajando en un proyecto de código abierto, el repositorio fue almacenado en CVS, que luego migró a SVN y luego a Git. Cada paso fue una gran mejora. La principal motivación para la mudanza de SVN a GIT fue facilitar a los contribuyentes el mantenimiento de sus propias sucursales, mantenerlas actualizadas, llevarlas a los desarrolladores y que los desarrolladores las apliquen fácilmente con el mínimo esfuerzo.


Soy un recién llegado en GIT, y después de usarlo por un par de semanas tengo que decir que es realmente genial, una vez que entiendes las instrucciones de línea de comando.

Para responder a su pregunta "¿Está listo Git?" => Creo que lo es (excepto por la curva de aprendizaje de la línea de comando).

Creo que usted y su equipo / compañía deberían preguntarse "¿Estás listo para git?" Una vez que comiences a usarlo, claramente tendrás mucha potencia al alcance de tu mano.

Sus primeros pasos para aprender git son:


Usamos git en mi empresa, y en función de sus necesidades de herramientas visuales, diría que no. Tortoisegit está por llegar, pero todavía no está allí. Herramientas como GitX y GitNub son geniales en OS X, pero no cubren por completo todo lo que describes.

Dale tiempo, sin embargo. Git se está moviendo a un ritmo bastante rápido, y gracias a ese crecimiento, la demanda de herramientas visuales está aumentando.

El mayor problema con el que probablemente te encuentres es el cambio de paradigma. No es lo más fácil de dominar, y será frustrante para algunos en su equipo, ya que se acostumbran a trabajar con Git y su naturaleza más distribuida (aunque no soy un gran fan de llamarlos SCM distribuidos).

Dicho esto, usar Git ha sido increíble y mi compañía, y me encantaría ver a otra compañía unirse a la mezcla.


Una presentación mucho más fácil (y una que he hecho con éxito) es configurar un repositorio central de Subversion, que les dé a todos las buenas herramientas como TortoiseSVN. Entonces, los desarrolladores que lo deseen pueden usar git-svn como un entorno completo de Git como cliente de Subversion.

Esto funciona muy bien porque todavía hay un repositorio central donde todos saben que un cambio dado se ha cometido, o no. Entonces, en los bordes, las personas pueden usar las herramientas que desean (Git) para realizar su trabajo.


En el seguimiento de la mención de Spoke de TortoiseHg para Mercurial, la descarga independiente de Windows para Bazaar incluye TortoiseBzr en estos días, aunque está marcado como experimental.

Lo intenté hace bastantes versiones y lo encontré inestable, pero puede haber mejorado mucho desde entonces (especialmente si están dispuestos a empaquetarlo con la versión oficial de Bazar).

Si realmente buscas un control de versión descentralizado con una interfaz similar a la de una tortuga, yo daría un vistazo y vería qué tan justo.

MI.


Cuando me expusieron por primera vez a Git, mi primera reacción fue ''Simplemente no lo trago''. Vi muchas herramientas poderosas, pero no fueron muy intuitivas. Cuando me acostumbré al uso de Git, me di cuenta de que la única característica que realmente me gustaba eran las ramas rápidas, baratas y fáciles.

Probé algunas de las interfaces gráficas, incluida la de GTK que se envía con Git. Los encontré más confusos que las operaciones de línea de comando.

Si su empresa está acostumbrada a Subversion y necesita cambiar a DVCS, pruebe Mercurial. Los usuarios de Subversion se sentirán como en casa muy rápidamente. Sin embargo, pocas personas pueden entender la idea de Mercurial sobre qué rama debería ser ... qué tipo de brotes usar un DVCS en el pie en primer lugar (salvo que se pueda comprometer localmente y empujar / tirar a los demás antes de empujar) al repositorio principal).

Trabajo a diario con Subversion y Mercurial, que se adapta bastante bien a todos mis proyectos. Creo que, a menos que necesites el poder de ramificación de Git y la capacidad de editar revisiones anteriores ... Subversion o HG va a ser tu mejor apuesta. No recomendaría a Git como la primera exposición de nadie a un DVCS, sino solo mi opinión y experiencia con él.


Claro, creo que Git está listo. Solo asegúrate de tener tiempo en el cronograma de tu proyecto para acostumbrar a las personas cuando cambien ...


¿Hay soporte para Git en la mayoría de las aplicaciones de terceros (que no sean Eclipse ...) todavía? No para muchos de los que he visto.

Es probable que Git no vaya a reemplazar SVN por completo, son lo suficientemente diferentes como para que cada uno pueda tener su rol por algún tiempo. De todos modos para responder a la pregunta en general: no, no está listo para el horario de máxima audiencia en el mundo de los negocios. Tal vez sea algún día, en algunos casos (probablemente no en todos los casos), pero, por supuesto, todavía es demasiado nuevo. ¡Muchas personas ni siquiera han oído hablar de él! El solo hecho de que se le haya aconsejado que haga una presentación para obtener el buy-in debería ser una señal de advertencia. Si vas a los desarrolladores hoy en día y dices que quieres mudarte a SVN, los únicos que no entenderán de inmediato son los que viven bajo una roca y ¿a quién le importan?

Además, lo más nuevo no siempre es mejor. Se necesita tiempo para que este tipo de cambio de paradigma se confirme como una mejora: observe la reacción violenta de Maven a lo largo del tiempo. No sea tan rápido para abandonar una solución probada, no cuando su trabajo y reputación están en juego: si Git no funciona, no se vería bien recomendándolo. Al menos con un producto como SVN tienes el hecho de que NO es nuevo, definitivamente lo demuestra con el tiempo, e incluso si hay problemas, la recomendación no puede ser cuestionada con dureza porque sigue siendo la respuesta predeterminada de la mayoría de los desarrolladores. Asesoramiento de ataque más difícil es cambiar a un estándar de la industria que un cambio a algo nuevo y no estándar.

No es la respuesta que desea escuchar (parece que ya ha tomado una decisión), pero pregúntese si los beneficios (y las sucursales son algo que debe evitarse, no recomendarse) realmente superan los riesgos.