2009-12-16 19 views
9

OK, así que he comenzado un contrato en el que están usando (trago) Visual SourceSafe y están buscando cambiar a algo mejor. He recomendado a Git. Me encontré con vss2git, que parece útil para migrar desde VSS. ¿Alguien lo ha usado?¿Alguien ha intentado vss2git?

¡Muchas gracias!

+0

Sin querer ser incómodo, GIT no es adecuado para una organización basada en Windows (las herramientas todavía no están * bastante * allí) y un salto enorme para alguien acostumbrado a VSS. Tampoco, a pesar de todas sus ventajas, DVCS no tiene problemas propios. Los aplaudo absolutamente al moverlos hacia adelante (a TFS, SVN, Mercurial, GIT o lo que sea). – Murph

+3

Creo que las herramientas son un problema menor que la mentalidad predominante de muchos desarrolladores de Windows. Si te sientes cómodo con un shell bash, ¡entonces tienes todas las herramientas que necesitas con Git Bash! En definitiva, * cualquier cosa * es mejor que VSS. Subversion está bien, y lo he usado durante años, pero no hace que la bifurcación/fusión sea sencilla. – Radicalise

+1

La ramificación es suficientemente trivial en SVN bajo Windows (lo que permite que use TortoiseSVN) - No estoy seguro de querer que sea mucho más fácil, la fusión no es exactamente tampoco (su forma de pensar es el problema) y mucho mejor desde 1.5 . Realmente, sin embargo, se trata de encontrar las herramientas adecuadas para el medio ambiente en general, en lugar de impulsar sus elecciones porque se siente cómodo con ellas (por no decir que están equivocadas, o las mías son mejores, simplemente para sugerir que es necesario ser visto desde un par de pasos hacia atrás). – Murph

Respuesta

2

Bueno, no hay muchos commits, y la descripción del proyecto dice que fue desarrollado inicialmente para la compañía del creador, por lo que probablemente no haya tenido un uso muy extendido.

Dicho esto, valdría la pena ejecutarlo en una copia de su base de datos VSS. Si funciona, entonces genial, si no, tal vez puedas trabajar un poco en el código o contactar al autor para obtener ayuda/sugerencias.

+1

OK, buenos puntos, gracias. Estoy * esperando * convencerlos de que no vale la pena preocuparse por su historial de versiones, pero dado que probablemente no funcionará, será importante encontrar una forma de migrar la historia, lo último que quiero es tener VSS dando vueltas. – Radicalise

26

Soy el autor de vss2git. Si el historial de su versión no involucra muchas acciones exclusivas de VSS, como compartir y archivar, su repositorio debería migrar sin problemas. He hecho una serie de correcciones en esas áreas en función de los comentarios de otros usuarios, por lo que hay una posibilidad razonable de éxito, incluso si lo hace.

Debo señalar que el número de confirmaciones para el proyecto en Google Code no es muy indicativo de la cantidad de refinamiento que ha experimentado; gran parte del desarrollo se ha versionado en un repositorio privado de Git, con solo publicaciones enviadas a SVN. Sin embargo, reiteraré lo que otros han señalado: ejecute siempre vss2git en una copia de su repositorio. Los archivos se abren como de solo lectura, pero no desea problemas de bloqueo cuando otro usuario intenta actualizar el repositorio en VSS dejándolo en un estado incoherente.

En cuanto a Git en Windows, funciona bien en estos días (uso msysgit), incluso para desarrolladores sin un fondo Unix. (Mis compañeros de trabajo de Delphi solo de Windows lo recogieron sin problemas y parece que les encanta). Por supuesto, si tiene desarrolladores alérgicos al uso de la línea de comandos y que exigen la integración de GUI con varios IDEs, es posible que esté mejor con SVN. Perderá la impresionante velocidad y flexibilidad de un DVCS, pero SVN tiene una integración más madura. Y supuestamente, la ramificación de SVN ya no es tan dolorosa como lo era antes.

+2

solo para actualizar, ya que estoy seguro de que todos saben que la integración entre git y varios IDE ha recorrido un largo camino, con MS incluso incluyéndolo en VS2013 – BlackICE

+0

@BlackICE - https://www.humankode.com/security/how-a -bug-in-visual-studio-2015-exposed-my-source-code-on-github-and-cost-me-6500-in-a-few-hours – JohnP

+0

Trevor: ¿funcionará su VSS2Git en 5.0? – JohnP

-1

Aparentemente vss2git no convertirá contenido archivado. Nuestra base de datos se corrompió irreparablemente hace un par de años, por lo que hemos archivado y restaurado a partir de una copia de seguridad para seguir adelante con una base de datos más pequeña y simple. Vss2git funciona, pero el repositorio de git no contiene el historial antes de la restauración.

+3

Otras personas han migrado contenido archivado y restaurado. Si puede reproducir el problema en un repositorio de VSS que está dispuesto a compartir, debe informar el problema en la lista de correo de vss2git. –

4

He intentado vss2git en cuatro bases de datos VSS diferentes y ha funcionado perfectamente todo el tiempo. El número de confirmaciones varió entre 100 y 700.

3

Intento dar una respuesta lo más precisa posible a la pregunta "¿Alguien lo ha usado?" : "¡Sí lo hice!"

Por arriesgar más la eliminación de mi respuesta que añadir algo más de contenido:

No descargue la rama "master", pero utiliza el "Remigio" rama. Tiene algunas correcciones importantes

comando de Git: git clone -b Remigius https://code.google.com/p/vss2git/

0

lo utilicé en una pequeña parte (un subdirectorio con cerca de 350 archivos con 3400 commit) de nuestra base de datos de VSS. Ha ido bastante bien, los siguientes puntos pueden ser de interés:

  • en el repositorio git crea el la ruta completa al subdirectorio como lo ha sido en el repositorio VSS - uno puede cambiar esto fácilmente con 'git mv 'más tarde
  • historia se remonta al momento en que se compartió un archivo en el subdirectorio (no se obtiene ningún historial que haya sucedido previamente en el directorio' fuente ')
  • etiquetas de archivos (etiquetas que se crearon en archivos , no en directorios) parecen perderse (no creo que los necesite de todos modos)

Fijación parece ser un problema (probablemente porque es una característica bastante VSS única):

  • en VSS tuvimos algunos archivos fijadas a una versión anterior cuando hicimos una etiqueta para marcar esta versión de la proyecto (Estos archivos fueron desanclados más adelante).
  • en el repositorio git la etiqueta se convirtió en una etiqueta. Pero esta etiqueta contiene las versiones de archivo de la fecha en que se creó la etiqueta, no las versiones a las que se vinculan estos archivos en este momento. (No sé cómo se podría lidiar con esta situación en git pero al menos vale la pena saberlo: AFAIK esto no se menciona en ningún lugar)
Cuestiones relacionadas