2010-10-25 23 views
5

Quiero hacer lo siguiente:checkout solo usuario en SVN

Cuando un usuario está editando un archivo de SVN, ningún otro usuario puede editar este archivo hasta que el primer usuario se compromete sus cambios. Es decir, habría algún tipo de writelock en los archivos en svn.

¿Esto es posible en SVN? ¿Cómo hacerlo? ¿Es posible configurar esto para un solo archivo o directorio (no para todo el repositorio)?

¿Por qué sería útil? Los conflictos en archivos binarios y algunos otros no se pueden resolver fácilmente. Me gustaría establecer mis archivos de Excel en svn para que se escriban bloqueados de la manera descrita anteriormente.

Me gustaría recibir una guía sobre cómo hacer esto en VisualSVN o TortoiseSVN que uso.

Respuesta

4

Puede establecer la propiedad svn:needs-lock en dichos archivos, luego el archivo se comprueba como "de solo lectura". Si desea editarlo, debe bloquear el archivo con svn lock. Ese flujo de trabajo está ahí exactamente para este caso.

Ver aquí para información sobre svn:needs-lock.

2

El comando "svn lock" impide que otras personas puedan realizar cambios en un archivo. No puede evitar que edite el archivo, ya que svn no tiene control del archivo una vez que se ha extraído. Puede indicarle a todo el proceso que todos bloqueen el archivo binario antes de editarlo para evitar que alguien realice ediciones que no pueden confirmar.

0
  1. No puede hacer tal writelock si alguien ya tiene una copia de trabajo. Puedes poner bloqueo regural. Pero solo se puede colocar por archivo, no por todo el directorio. Entonces, otro usuario no puede confirmar sus cambios hasta que se libere el bloqueo. Si desea hacer para todo el directorio, entonces debe escribir un script de gancho. Eso se ejecuta en el servidor, en eventos, p. cometer evento, .... Podría poner más lógica en ello para prohibir las transferencias. Pero no es cómo deberíamos trabajar bajo svn. La posibilidad de desarrollo paralelo es una de las características clave de svn.
  2. Writelock no es eficaz porque alguien no debería trabajar en su copia de trabajo en paralelo. Necesitará fusionarse a la versión más nueva de todos modos.
Cuestiones relacionadas