Visual Source Safe

27/04/2006 08:04 por Álvaro J. Iradier

Si Satanás se reencarnara en la tierra en forma de empresa de Software y decidiera desarrollar un sistema de control de versiones para regocijarse en el dolor y el sufrimiento de los programadores y traer el caos, desgracia y destrucción a toda la humanidad, sin duda llamaría a esta aplicación Visual SourceSafe, o VSS para los amigos. El control de código fuente convertido en el infierno, y el alma de los desarrolladores ardiendo en el fuego eterno.

Para los neófitos en el tema, un sistema de control de código fuente permite que un equipo de desarrolladores trabaje en paralelo sobre un conjunto de archivos de código, almacenado en un repositorio, manteniendo un histórico de las versiones de los archivos. Esto nos permite hacer un seguimiento de los cambios que se han producido, y volver atrás en cualquier momento. Otras opciones más avanzadas permiten crear ramas de desarrollo, en las que un proyecto se bifurca en distintas versiones, que pueden posteriormente volverse a unir.

Antes de trabajar con VSS había trabajado con CVS y con Subversion. A pesar de algunas carencias importantes de CVS, debido fundamentalmente a su antiguedad, en funcionamiento desde 1986, lo considero un sistema superior a VSS. Subversion soluciona la mayoría de los problemas de CVS, y además simplifica la sintáxis de los comandos. Es una maravilla. En cualquier caso, existen aplicaciones como TortoiseCVS y TortoiseSVN que integran CVS y Subversion respectivamente con el explorador de Windows, o AnkhSVN que integra Subversion con Visual Studio. Los usuarios de Linux normalmente no necesitan tantas facilidades, y saben buscarlas por su cuenta, por lo que no me molestaré en poner enlaces.

VSS contradice uno de los principios fundamentales de un buen sistema de versiones, que es el trabajo en paralelo. La forma de trabajar de VSS nos obliga a bloquear un archivo ("Check Out" o "Desproteger") antes de poder trabajar con él. Mientras un archivo está protegido, ningún usuario puede subir cambios a este. En teoría uno puede trabajar de forma local sin desproteger el archivo, y luego mezclarlo (Merge) con el archivo del repositorio, una vez que éste quede libre, pero se puede denominar esta operación como de máximo riesgo.

Por un lado, VSS insiste de forma continuada en sobreescribir nuestra copia local y modificada del archivo a cada intento que hacemos de desproteger el archivo. Cualquier pequeño descuido hará que todo el cuidadoso trabajo invertido en nuestro código se vaya al traste para siempre. Si conseguimos superar esta fase, y procedemos a la operación de mezclado, VSS nos presenta un proceso totalmente manual y con un interfaz poco intuitivo, para que, diferencia por diferencia, decidamos cual de las dos versiones (la del repositorio, o la local) se incluye en el resultado final.

Para ayudar un poco más a este caos, algunas implementaciones de VSS como el plugin de Eclipse tienen el comportamiento curioso de no recargar el archivo si este estaba abierto al desprotegerlo. El resultado es que una vez desprotegido el archivo, al guardarlo será sobreescrito por nuestra versión local, que no incorporará los cambios descargados del repositorio.

Si alguien piensa que tal vez VSS subsana las carencias de CVS, como el no permitir renombrar archivos o carpetas, está equivocado. Satán es muy meticuloso con su trabajo, y cuando un archivo se renombra se pierde todo el historial.

No podemos cerrar este artículo sin comentar otra de las features de VSS: la corrupción de datos. VSS basa su almacenamiento en una base de datos Access, motor de base de datos profesional como ninguno. Si durante alguna operación tan trivial como la descarga de la última versión de los archivos se produce una interrupción, SourceSafe nos avisará de que el administrador del repositorio debería utilizar la herramienta de análisis y reparación para evitar corrupción. Y creanme, deberían hacerlo. Lo habitual es pasarla al menos una vez a la semana si no queremos llorar después. Quedan avisados.

Comentarios

27/04/2006 08:04

Baste citar la analogia

Baste citar la analogia entre SS (SchutzStaffel, la duerza paramilitar Nazi) y SS (Source Safe) para darse cuenta que el demonio metió la mano en su creación. Es curioso que alguien sea capaz de crear un sistema tan poco fiable y caótico y tenga la santa moral de denominarlo "Source Safe".

También habría que comentar la dislexia del personaje que le puso nombre a los comandos. Donde está la lógica de llamar desproteger a la acción de apropiarse del fichero para modificarlo a tu gusto sin que los otros puedan tocarlo. Eso de toda la vida en mi pueblo ha sido proteger, eso ya sin contar que la terminología de cvs que se lleva usando desde por los siglos de los siglos es la contraria.

En fin, que está claro, si se quiere usar Xtreme Waste-Time, SS es tu sistema de descontrol de código.

elchacho

27/04/2006 08:04 por Álvaro J. Iradier

Se me olvidaba...

Últimamente SourceSafe tiene la manía de marcar aleatoriamente como bloqueados por mi persona archivos de los que ni siquiera había oído hablar, con el consiguiente mosqueo del personal, y petición para desbloquearlo...

Satán siempre nos reserva las sorpresas más variopintas.

28/04/2008 08:04 por jrealpec

Hola, Mi caso es el siguiente:
Inicialmente se trabajo en un proyecto inicial (A), durante mas de 6 meses, resulta que se necesito trabajar en otra version del sistema para aplicar requerimientos de 1 cliente importante. tanto asi que se decidio sacar una copia del proyecto A y crear un proyecto Nuevo basada en la copia (B). Se trabajo en el proyecto B durante cierto tiempo y ahora se pretende unificar estos proyectos en uno solo teniendo en cuenta los cambios que se han hecho tanto en el proyecto A como en el proyecto B.

Alguien ha tenido la misma situacion?

jrealpec

26/06/2008 08:04 por Álvaro

Pues en un sistema de versiones tipo subversion, cogería uno de los dos proyectos, pongamos el A, y le aplicaría los cambios (merge) hechos en B desde la creación del proyecto (que fue donde se hizo el fork de A) hasta la actualidad. Con subversion y TortoiseSVN y bastante simple, o siempre se puede generar algún archivo .diff o similar.

Un saludo.

18/12/2009 08:04 por Manuel

Creo que es una vision cerrada de un weon que se cree habil e inteligente por que usa Linux, opensource a cagar y todas esas cosas que estan ahi para ocuparlas, pero no te hace mas inteligente, de hecho tu articulo demuestra....

1.- Si no te gusta, no lo uses y ya, andaba buscando información valiosa y me topo con esta wea que tiene cero aporte(ya se que SVS es bueno, pero ahora me toca bailar con VSS y ya)

2.- Cuando dices que los usuarios linux no necesitan tantas facilidades, no me vas a decir que les gusta sufrir.. ,soy muy mermela...

21/03/2010 08:04 por Álvaro Iradier

Bueno, el post no es más que mi opinión, simplemente una crítica, y bastante ácida y exagerada (lo resalto por si alguien no se había dado cuenta).

1. No me gusta, pero lo usaba porque no pude elegir. Estaba impuesto de esa manera. 2 meses después dejé esa empresa, porque había muchas otras cosas que no me gustaban. No es un artículo que intente aportar información útil, sólo hacer una sátira exagerada, en tono irónico y humorístico.

2. A nadie le gusta sufrir. Simplemente cualquier que use SVN o CVS en linux está habituado a utilizarlo desde línea de comandos, o bien sabrá buscarse un interfaz gráfico por sí mismo. Eso de "mermela" no sé muy bien qué es...

Un saludo.

19/05/2010 08:04 por Whitaker25Barbara

Some time before, I really needed to buy a house for my corporation but I did not earn enough money and couldn't order something. Thank God my brother adviced to try to take the <a href="http://lowest-rate-loans.com/topics/mortgage-loans">mortgage loans</a> from reliable creditors. Therefore, I acted so and was happy with my commercial loan.

Publicar Comentario


El Email no se mostrará públicamente
Captcha =
Introduzca el resultado de la operación


Warning: Todo parecido de lo expuesto en esta página con la realidad es pura coincidencia.
Las historias y personajes aqui reflejados son fruto de la imaginación de una mente perturbada.
Está permitida la distribución y modificación de todos los contenidos de esta web, siempre que se cite la fuente.

Diseño por Wink Hosting.