git visual-sourcesafe

Usando Git con Visual Source Safe 6.0



visual-sourcesafe (3)

Cualquier persona atrapada con VSS puede encontrar útil la siguiente publicación si tiene que tratar con sucursales:

http://timwise.blogspot.com/2011/11/multiple-working-folders-for-git-on.html

Básicamente, se detalla el uso de SysInternals ''Junction para obtener el soporte de enlace simbólico en Windows y luego compartir un repositorio git entre las carpetas de la rama física que VSS te impone al copiar los archivos en la carpeta .git y vincularlos de forma simultánea.

Y aquí están los scripts para automatizar el intercambio.

Lo siento por esta horrible y horrible pregunta ... pero no hay forma de que no use VSS.

Me gustaría poder usar Git localmente para el desarrollo de sucursales, etc. mientras uso Visual Source Safe 6. Mi conocimiento de todos los entresijos de Git es limitado en este momento, ya que soy un converso reciente.

Pregunta:
Lo que me gustaría poder hacer es trabajar dentro de un repositorio Git. Me gustaría hacer esto y obtener todos los beneficios que esto me permitirá con la bifurcación, etc. Al final de mi día, o en otros momentos necesarios, me gustaría poder tomar cualquier trabajo que esté haciendo y ubicarlo. en el repositorio principal que luego pondría en VSS.

Idealmente, al comienzo de la jornada laboral obtendría la última versión de VSS. Comprométase con Git. Luego, trabajaré en una rama alternativa, y volveré a poner los cambios en el master cuando necesite comprometerme con VSS.

Siendo que soy un novato en git relativo, ¿cuál podría ser la mejor manera de lograr esto? Junto con los mejores comandos para emitir / forma de configurar esto.

* nota: Source Safe necesita que se revise el archivo antes de que se puedan hacer cambios, creo. ¿Tal vez haya alguna herramienta / script que pueda usar para ayudar a automatizar esto para volver a introducir cambios en VSS?


La configuración que estás considerando debería funcionar bien. Para comandos git solo revisa los tutoriales.

El flujo de trabajo que he usado (no con VSS, pero el concepto es el mismo) es algo como:

  • Checkout desde main (es decir, VSS)
  • Mantener una rama "troncal" que esté sincronizada con VSS
    • siempre se mantendrá limpio
  • Desarrollar en ramas ramificadas desde "tronco".
  • Actualización de VSS:
    • cambiar a "tronco"
    • actualizar con VSS
    • git cometer los cambios
    • Rebase las ramas que están ramificadas desde el tronco.
  • Para empujar cambios a VSS:
    • empujar cambios de la rama de desarrollo a "tronco"
    • cambiar a "tronco"
    • VSS confirma los cambios.

También estoy atrapado en esto, la forma en que lo hago es no hacer que otros toquen mi VSS y verifiquen todos los archivos todo el tiempo, esto significa que nadie más puede contribuir, por lo que naturalmente no es una solución viable para todos. La solución que sugeriría es que usted:

  • Chekout de VSS
  • Crea una rama para trabajar en tu función
  • terminar el trabajo en su función
  • Cambiar a la rama maestra
  • Actualizar el último VSS
    • Si se realizan cambios, rebase tu sucursal
  • Vea qué archivos se cambian usando $ git diff --name-status master..branchName (vea Mostrar qué archivos han cambiado entre dos revisiones para la fuente de esto)
  • Echa un vistazo a los archivos alterados utilizando VSS
  • Combine su rama en el maestro (preferiblemente borrando su rama de la característica)
  • Comprometerse con VSS

Es posible que pueda usar una de estas secuencias de comandos para salir, pero como probablemente esté usando M $ (ya que está usando VSS), no es algo en lo que pueda ayudarlo.

La forma en que VSS funciona Creo que sería mejor minimizar el tiempo dedicado a los archivos desprotegidos de VSS y, por lo tanto, esta es una mejor manera.

Tenga en cuenta que puede haber algunos problemas al actualizar los archivos, ya que VSS configura automáticamente la marca de solo lectura en los archivos que no están protegidos. Una solución podría ser necesaria aquí.