2009-08-28 15 views
6

Hemos estado utilizando CVS (con la interfaz TortoiseCVS) durante años tanto para control de fuente como para control de documentos de gran alcance (incluidos binarios como Word, Excel, Framemaker, datos de prueba, resultados de simulación, etc.). A diferencia de los sistemas de control de versiones típicos, el 99% del tiempo que queremos previene la edición simultánea de: cuando un usuario comienza a editar un archivo, la versión de edición previa del archivo pasa a ser de solo lectura para todos los demás.¿Qué sistema de control de versiones está mejor diseñado para * prevenir * la edición simultánea?

Muchas de las personas que utilizarán esto no son programadores o incluso conocedores de la informática, por lo que también estamos buscando un sistema que permita a las personas simplemente agregar documentos al repositorio, revisar y editar un documento (a menos que else lo está editando actualmente) y vuelva a controlarlo con un mínimo de alboroto.

Hemos conseguido que esto funcione razonablemente bien con CVS + TortoiseCVS, pero ahora estamos considerando Subversion y Mercurial (y abiertos a otros si se ajustan mejor) para su mejor seguimiento de versiones, así que me preguntaba cuál soportó bloquear archivos de forma más transparente. Por ejemplo, queremos que el bloqueo exclusivo esté habilitado como el predeterminado, y queremos que sea lo más difícil posible para que alguien empiece a editar accidentalmente un archivo que alguien más ha revisado. Por ejemplo, cuando alguien revisa un archivo para editarlo, primero verifica con la base de datos maestra , incluso si no han actualizado recientemente su sandbox. Quizás ni siquiera permita que un usuario revise un documento si está fuera de la red y no puede registrarse con la nave nodriza.

+0

Wikipedia como un excelente artículo comparando productos: [http://en.wikipedia.org/wiki/Comparison_of_revision_control_software](http://en.wikipedia.org/wiki/Comparison_of_revision_control_software) –

Respuesta

10

Subversion ofrece bloqueo forzado. Cuando se establece Propoerty svn:needs-lock, el archivo se comprueba como de solo lectura y el usuario debe bloquearlo para obtener una copia de trabajo que se pueda escribir. Ningún otro usuario puede obtener el mismo archivo bloqueado desde allí.

+0

Pero todavía tendría que cumplir que todos los archivos tienen la propiedad svn: needs-lock; no solo los existentes sino también los que se agregaron recientemente. svn autoprops puede hacer eso, pero luego debe asegurarse de que cada cliente tenga la configuración correcta de autoprops. tsvn: autoprops es otra opción si usa solo tortugaSVN, pero no funcionará si los usuarios revisan una subcarpeta del proyecto :-( –

+0

Esto se puede hacer en el archivo de configuración para cada cliente (miscelánea: enable-auto- props = yes, auto-props: * = svn: needs-lock). Verifique la configuración del cliente mediante un enlace pre-commit en el servidor que rechace checkins no bloqueados –

5

Sé que no está en su lista, pero estamos contentos con Perforce. Puede impedir que varias cajas con

El administrador puede utilizar Perforce la orden p4 typemap para asegurar que todos los archivos de un tipo determinado (por ejemplo , para //depot/.../*.gif todos los archivos .gif) solo pueden ser abiertos por un usuario a la vez. Consulte la Referencia de comandos de Perforce para obtener más información.

+0

Comparado con P4, la implementación de Subversion de esta característica es "muy deficiente" Está en mi lista de razones por las cuales una compañía elegiría P4 sobre SVN, y baja en mi lista de lugares en SVN. Espero ver una mejora significativa en el futuro cercano: o –

+0

Cuando p4 me hace esto, yo solo " chmod u + w file "y ese es el final de * ese * problema. p4 es la peor herramienta de control de versiones jamás diseñada. – jrockway

+0

¿Puede bloquear a los usuarios el uso de" conciliar trabajo fuera de línea "? –

4

Suena como Subversion con TortoiseSVN cabría la cuenta. Como lo mencionó Arne Burmeister, puede cambiarlo al modo de bloqueo de necesidades, donde cada archivo prestado será de solo lectura hasta que lo bloquee. Mediante el uso de ganchos puede hacer que notifique a otros usuarios cuando un archivo está bloqueado o desbloqueado.

TortoiseSVN se integra con el explorador de Windows por lo que requiere poco conocimiento de la computadora.

Tenga en cuenta que Subversion tiene una función de "bloqueo de robo", pero puede deshabilitarla si lo desea mediante el uso del enganche PreLock.

+0

Siempre y cuando los miembros del equipo sean sensatos (hacer efectivo commu nicación), no es necesario deshabilitar la función de "bloqueo de robo". –

+0

La pregunta establece, "queremos que sea lo más difícil posible para alguien que accidentalmente comience a editar un archivo que alguien más ha revisado" – RedFilter

1

Sé que IBM ClearCase evita eso. Lo usamos por esa razón en nuestra compañía.

+0

¡¡¡Aunque NO está diseñado para evitar la edición simultánea !!! – pablo

2

Mencionas a Mercurial, ya pesar de ser un desarrollador de Mercurial, debo estar de acuerdo con las sugerencias para usar Subversion. Mercurial consiste en dejar que las personas se desarrollen de forma distribuida. Esto incluye realizar confirmaciones privadas que solo se comparten con otras personas más adelante. En otras palabras, Mercurial no intenta bloquear archivos en un servidor central (ni siquiera existe el concepto de un servidor central).

Vaya con Subversion, es un sistema de control de revisiones tan fino como el que encontrará (solo he probado los sistemas de fuente abierta, no conozco nada de sistemas de fuente cerrada). Si lo desea, puede experimentar con hgsubversion "en el lateral".

0

El RCS original. Cuando revisa un archivo, lo bloquea: "co -l nombre de archivo". A partir de entonces, hasta que vuelva a verificarlo ("nombre de archivo ci"), nadie puede alterar el archivo.

0

No creo que ningún control de versión distribuida, como mercurio o git, vaya a funcionar para usted aquí. SVN tiene solo las funciones más básicas para el bloqueo, y el archivo se establece de manera que, como en el caso de algunas herramientas de Office, significa que puede editarlo, luego descubre que no puede guardarlo hasta que lo compruebe, luego lo verifica solo para descubrir que la versión del servidor era diferente, y usted pierde la versión del servidor o su versión local.

No puedo creer lo que estoy diciendo, pero si quieres trabajar de esa manera, la fuente de seguridad visual es el único sistema que conozco diseñado de esa manera. Si quieres una versión más moderna/confiable, mira la Bóveda de sourcegear, aunque hicieron grandes esfuerzos para hacer algo que se parecía a vss pero que funcionó bien en un entorno similar a svn.

Pero quizás una solución de administración de documentos dedicada sea mejor, o tal vez algo así como el servidor de portal.

Cuestiones relacionadas