2011-11-15 22 views
9

He sido un usuario de git muy ávido desde hace bastante tiempo. Sin embargo, a menudo observo que los usuarios experimentados de SVN parecen tener muchos problemas con el uso de git. Ahora estoy buscando recursos para hacer git más disponible para las personas que han estado acostumbradas a usar SVN durante mucho tiempo y han desarrollado un hábito fuera de las peculiaridades de SVN.Git para usuarios de SVN

Sé que es el git svn crash course, pero esto realmente no proporciona la información que necesito. Si bien esto mapea fácilmente los comandos SVN comunes a comandos similares de Git, las personas tienden a utilizar flujos de trabajo más complejos, que a menudo no se pueden mapear fácilmente simplemente asignando comandos de una herramienta a la otra.

Por ejemplo, mucha gente que conozco suele tener varias versiones de un software versionado en diferentes directorios, para poder cambiar fácilmente entre las revisiones. Para mí, esto parece una solución arriesgada que Git maneja fácilmente a través de un flujo de trabajo git stash, git checkout. También he notado que las personas que usan SVN tienden a pensar de forma diferente sobre las ramas. Mientras que en SVN todas las confirmaciones de una rama pertenecen por completo a esa rama (porque conciernen a ese directorio) en Git, realmente no existe tal cosa como "una confirmación de una sucursal", ya que cada sucursal incluirá todas las confirmaciones de esa sucursal actual .

¿Hay algún tutorial que mapee estos conceptos para hacer que Git sea más accesible para los usuarios de SVN que se ven obligados a usarlo?

+0

A pesar de que no tiene ninguna orientación particular a los usuarios de SVN, he encontrado "Pro Git" (http: //progit.org/book/) para ser un buen recurso, habiendo llegado a Git como un usuario de SVN desde hace mucho tiempo. – madth3

Respuesta

1

también procedente de SVN, Git he manejado mejor después de terminar los laboratorios en gitimmersion.com

4

En mi opinión, tratar de describir a Git usando términos svn, o viceversa, será una tarea inútil. Creo que los dos son fundamentalmente diferentes.

El mejor enfoque, en mi opinión, es decirle a los usuarios que intenten olvidar lo que saben sobre svn y aprendan Git con la mente abierta.

1

Creo que la diferencia clave para alguien que viene de una mentalidad SVN es que git respeta el "código de entrada" y "compartir código con el equipo" como acciones distintas, donde SVN las combina en el subcomando commit (y un SVN experimentado el usuario ni siquiera se da cuenta de que son acciones distintas, no lo hice). Esto es lo que permite la libertad de sucursal y la opción de reordenar y aplastar los compromisos, por lo que entender eso es crucial.

La otra cosa que realmente me ayudó fue una descripción de la estructura del repositorio, principalmente que los encabezados son solo punteros para asignar objetos.

2

simplemente Tuvimos un SVN a Git la migración en el trabajo. Una de las cosas más importantes fue no asustar a los usuarios. Las herramientas desconocidas hacen que las personas se sientan incómodas. Es por eso que es esencial hacer la transición lo más suave posible.

  • ayuda con la configuración. Los usuarios SVN probablemente no saben cómo configurar las claves ssh
  • decirles las similitudes primero.Estos comandos son bastante similares
    • git commit
    • git log
    • git branch
    • git funden
  • después de algún tiempo se puede presentar temas más avanzados
  • dar a la gente el tiempo para usar su antiguo flujo de trabajo en el nuevo sistema y cuando están listos para pasar al siguiente nivel presentan temas avanzados

No todas las personas avanzarán a la misma velocidad, algunas incluso podrían usar Git como reemplazo de SVN. Eso no es un problema per se. Es más importante que aquellos, que están dispuestos a aprender más y aquellos que desean utilizar la herramienta de la forma en que fue diseñado, obtengan el apoyo adecuado. Ayudarán a otros a hacer algún progreso.

Hemos intentado configurar un parque infantil, que era bastante inútil. Casi todas las personas, que aún no conocían a Git, no probaron nada. Ellos solo quieren hacer su trabajo. y no tiene el tiempo para jugar ...

Aún así, en general, fue un gran éxito y hay muchas personas que comienzan a utilizar características avanzadas. No hubiera soñado que las personas trabajarán con múltiples controles remotos solo dos meses después del lanzamiento, pero lo son. Se están ramificando y fusionándose como profesionales, y cuando tienen problemas preguntan.

Para alojar nuestros repositorios, decidimos configurar un servidor interno Gitorious. Esto tiene algunas grandes ventajas. Primero viene con una interfaz de usuario muy bien diseñada y en segundo lugar es solo Rails. Si conoce MVC, puede personalizarlo fácilmente según sus necesidades.

+0

+1 por 'tiempo para usar un flujo de trabajo anterior'. Git con un repositorio centralizado admite un modelo similar a SVN. Para muchas personas, esto está perfectamente bien. – Barend