svn version-control visual-sourcesafe

svn - Rendimiento en Subversion vs. SourceSafe



version-control visual-sourcesafe (8)

Somos un equipo distribuido de 5 desarrolladores que trabajan en proyectos de integraciones bastante grandes. Actualmente usamos SourceSafe (sí, que apesta, pero ha funcionado hasta hace poco y lo hemos usado para siempre). Nuestro mayor problema se ha convertido recientemente en rendimiento. El proceso de entrada y salida solo lleva una eternidad y nos estamos pasando mucho tiempo simplemente esperando SourceSafe (sí, hemos desactivado la comprobación de antivirus y todos los demás trix de mejora del rendimiento, todavía es lento).

Ahora estamos buscando configurar y mover todas nuestras cosas a Subversion. ¿Cómo se compara el rendimiento en SourceSafe en la web con Subversion? Supongo que la historia no es tan importante para avanzar (podríamos volver a la base de datos de VSS si necesitamos un archivo antiguo) y el movimiento de los archivos a Subversion realmente debería ser un problema, ¿no?

También me gustaría obtener información sobre herramientas y complementos que "deben tener" además de las herramientas básicas de Subversion.


El acceso remoto es mucho más fácil con Subversion.

Si no le importa retener su historial, pasar de VSS a subversión también es fácil. Solo tiene que eliminar manualmente los enlaces de control de origen (archivos * .scc).

En cuanto a las herramientas, es probable que desee obtener TortoiseSVN y tal vez un complemento para usar con Visual Studio (si eso es lo que está usando) como Ankh SVN (gratis).


Estoy de acuerdo con @relentless sobre la subversión, pero prefiero usar la línea de comando. Se necesita un poco para aprender, pero una vez que haya aprendido, será más rápido.

Además, si el rendimiento es un tema importante, tal vez desee consultar http://git.or.cz/ , se dice que es muy rápido y confiable.


Según mi experiencia, será mucho más rápido.

No he usado el mismo proyecto grande en VSS y SVN, pero he hecho diferentes proyectos en cada uno, y migré uno pequeño de VSS a SVN.

Algunas cosas son mucho más rápidas. En particular, registrar / enviar una gran cantidad de archivos genera un mensaje de advertencia que dice: "esto llevará mucho tiempo y puede que no funcione". ¿Desea intentar hacerlo de todos modos? (Esto no es exactamente lo que dice).

En realidad, no es posible comprometer una gran cantidad de cambios en VSS: tienes que hacer múltiples commits pequeños, dejando el proyecto en un estado temporalmente roto (aunque no tiene compromisos atómicos de todos modos, así que eso sucedería en algún momento) .


Si le importa mantener su historial, entonces http://www.pumacode.org/projects/vss2svn convertirá de un repositorio a otro.

Tuve un éxito muy limitado con esto y es una de las razones por las que aún utilizamos la fuente segura.


TortoiseSVN es realmente un cliente muy agradable, y lo uso en combinación con Trac en el servidor para tener acceso web al repositorio y un buen sistema wiki / ticket.

LiveCD - enlace .


Visual SourceSafe se basa en compartir archivos. Entonces, cuando reservas en un archivo, todo se hace usando el sistema de archivos. Por lo tanto, en lugar de simplemente enviar los archivos de texto a un servidor y todo lo que sucede de forma remota, VSS accede a los bloques físicos desde el disco cuando accede al servidor vss. Incluyendo buscar el archivo en el directorio de discos compartidos, etc ... Esto es aproximadamente 10 veces más lento que un protocolo personalizado de servidor cliente.

Hay un producto llamado SourceOffSite que agrega una interfaz más rápida a la base de datos de VSS, lo que hace que VSS sea útil en enlaces más lentos.

Tony


El check-in de VSS se llama commit en SVN. Esta operación es mucho más rápida, ya que SVN solo transferirá los cambios (también conocido como "diff") que usted realizó a los archivos, mientras que VSS enviará el archivo completo y lo diferenciará en el servidor.

el check out en SVN (obtener una copia de trabajo inicial) es algo lento en comparación con otros sistemas, si está usando http (s) y tiene un tamaño general grande (> 100 MB) de archivos. El peor caso de SVN es una gran cantidad de archivos y directorios, ya que la transferencia HTTP será mucho más lenta que los archivos grandes y únicos.

Sin embargo, dudo que VSS sea más rápido que SVN. El rendimiento general de SVN es más rápido, más robusto (sin daños en la base de datos) y más fácil de entender que VSS.

Nice Tools son TortoiseSVN (Explorer Plugin), smartSVn (VSS-lookalike) y commandline (flexible) como Tigraine agregó en mis comentarios: AnkhSVN (Integración Visual Studio) y subversivo / subclipse para eclipse IDE


También puede encontrar esta pregunta relevante.

Actuación

La principal diferencia en cuánto tiempo toman las operaciones individuales en SVN y VSS es en el principio SVN: el tiempo de la operación debe ser proporcional al tamaño del cambio, no al tamaño del proyecto. Esto se ve mejor con Get latest version (VSS) versus Update (SVN). VSS "Obtener la última versión" siempre itera sobre todos los archivos del proyecto, verificando su estado. Esto lleva mucho tiempo. Comparado con esto, SVN verifica el historial del proyecto y solo manipula los archivos que fueron tocados. En un escenario típico, esta es una gran victoria, ya que la mayoría de las veces solo se tocan algunos archivos. Incluso cuando se toca un archivo, la transferencia del cambio es mucho más rápida en SVN que en VSS, ya que solo se transfieren los cambios, en comparación con todo el archivo en VSS. Lo mismo es cierto para Commits (Checkin), donde nuevamente SVN es mucho más rápido cuando se hacen pequeños cambios en archivos de gran tamaño. Esto también se aplica a los archivos binarios, ya que SVN también puede diferenciarlos (usando XDelta como su motor central de diferenciación).

Las herramientas más importantes

Para un desarrollador de Visual Studio, las herramientas más importantes son:

  • TortoiseSVN : acceda al repositorio a través de Windows Shell
  • AnkhSVN - Integración de Visual Studio
  • algunos también recomiendan VisualSVN como integración VS, pero creo que con AnkhSVN 2 la integración ya es lo suficientemente buena

Incluso llegué a decir que al tener TortoiseSVN y AnkhSVN no es necesario que haya instalado "herramientas centrales de Subversion". Las herramientas básicas de línea de comandos son extremadamente útiles, por ejemplo, para la automatización, pero para el trabajo diario general, nunca las utilizo y no es necesario instalarlas para que funcione TortoiseSVN o AnkhSVN.

acceso web

El acceso a través de la web es soportado nativamente por SVN, y es soportado extremadamente bien. Para VSS necesita aplicaciones externas para esto y, aunque no son malas, no son 1: 1 para el entorno original, y su velocidad todavía es algo que falta.

Cómo convertir

VSS2SVN es una herramienta que realiza la conversión razonablemente rápido y razonablemente bien. De acuerdo con nuestra experiencia, recomendaría encarecidamente no usar la compilación "estable", usar una instantánea diaria en su lugar: es capaz de manejar muchos elementos en la historia que hacen que la compilación anterior falle por completo.

Hemos utilizado la construcción diaria reciente con éxito con una gran base de datos con una larga historia y el resultado fue muy bueno.