2010-03-13 22 views
8

En el trabajo comencé a usar Subversion con AnkhSVN en lugar de Visual Source Safe. Me las arreglé para integrarlo lo suficientemente bien pero no parece lo mismo. Al usar VSS, sucederá lo siguiente:Trabajando con Subversion del mismo modo que con Visual Source Safe en Visual Studio

Un usuario verifica un archivo haciendo clic con el botón derecho y seleccionando "salir" o editando. Si otro usuario intentara modificar el mismo archivo, obtendría un error. Ningún usuario 2 podría editar el mismo archivo al mismo tiempo. Sin una fusión elegante. Sin conflictos y sin resolución de conflictos.

Entiendo que la filosofía detrás de Subversion es diferente, pero ¿hay alguna forma de que este comportamiento descrito anteriormente se pueda duplicar con Subversion?

Hay una opción en AnkhSVN llamada "Bloquear archivos automáticamente al cambiar ..." pero incluso si activo esta opción cuando edito un archivo, nunca se bloquea automáticamente. Incluso si esta opción funcionara, los otros usuarios no verían el bloqueo hasta que hayan enviado el archivo. No obtendrían un error cuando intentaran editarlo como lo harían en Visual Source Safe.

Básicamente, ¿se puede duplicar el comportamiento de Visual Source Safe utilizando Subversion y AnkhSVN?

+2

¿Por qué le gustaría? Subversion no fue diseñado para este tipo de proceso. Si prefiere la forma de trabajar de VSS, ¿por qué no usar VSS? – Thomas

+0

Bueno, no puedo. Se eligió Subversion y no pude opinar. – Para

+0

@Thomas: ya no confiaría en mi código fuente a VSS. He visto demasiadas bases de datos rotas, y la fusión de cambios entre sucursales es realmente imposible.SVN ha adoptado una forma de comunicar archivos no-mergable que necesitan bloqueo, y AnkhSVN implementa esto de manera que coincida con lo que VSS haría muy de cerca. No estoy tratando de entrar en la discusión SVN vs VSS aquí :) –

Respuesta

7

El punto de uso de la subversión sobre la fuente segura es que no tiene tiene bloqueo exclusivo y muchas personas pueden trabajar en el mismo archivo.

Usted está perdiendo muchos de los beneficios de SVN si comienza a utilizarlo con bloqueos exclusivos en los archivos.

La idea es que solucione los conflictos durante las fusiones de código.

Véase this SO preguntas y respuestas para un poco de un debate sobre los problemas (Revision control locking: Is the jury still out?).

+1

+1 para la verdad total. –

2

Debe establecer svn:needs-lock propiedades de subversión en los archivos que desea bloquear explícitamente. En realidad, solo se recomienda para los archivos que no se pueden fusionar fácilmente, como (la mayoría) de los archivos binarios y no en los archivos de texto/código. Por lo general, los archivos de texto/código se combinan de manera excelente automáticamente, y cuando no son conflictivos, suelen ser fáciles de resolver.

AnkhSVN le pedirá que bloquee el archivo (igual que al finalizar la compra en VSS) cuando intente editarlo cuando se haya establecido la propiedad svn:needs-lock. Si habilita la función "Bloquear automáticamente archivos", se suprime el cuadro de diálogo de bloqueo y se bloquea el archivo sin que aparezca un cuadro de diálogo.

Svnbook explica the differences between a lock-modify-unlock and copy-modify-merge, y el comportamiento svn:needs-lock también se describe

6

El Agent SVN es un plugin de MS-SCCI (al igual que VSS) para Subversion por lo que se integra con Visual Studio como VSS.

También tiene una opción Lock on check out y con esa característica se siente mucho como VSS.

Cuestiones relacionadas