La carpeta está bloqueada y no puedo desbloquearla

108

Cuando intento actualizar o confirmar el código de un proyecto, me dice que la carpeta está bloqueada. Cuando intento "liberar el bloqueo", dice que no hay nada que desbloquear en este espacio de trabajo.

Qué significa eso? Por qué no puedo actualizar, comprometer o incluso limpiar el proyecto.

Iyad Al aqel
fuente
¿Qué versión de svn estás usando?
Chriseyre2000
Ensamblar para un repositorio, Tourtise SVN 1.7
Iyad Al aqel
Entonces, ¿tiene una carpeta .svn en cada directorio o solo la raíz?
Chriseyre2000
¿Ha intentado revisar el proyecto nuevamente en una copia de trabajo separada?
Bernard
Sí, funciona si lo
verifico

Respuestas:

161

Haga clic con el botón derecho en la carpeta del directorio de trabajo de Subversion y seleccione TortoiseSVN-> Limpiar en el menú contextual. Esto repetirá su camino a través de su directorio de trabajo y limpiará cualquier acción incompleta, elimine los bloqueos locales (que es diferente de usar el bloqueo de Subversion de un archivo en el repositorio que les permite a todos saber sobre el bloqueo).

Si eso no funciona, vea si puede encontrar los nombres de los archivos que se cambiaron, pero que aún no se confirmaron, guárdelos y vuelva a realizar el proceso de pago.

David W.
fuente
28
Tuve este problema y la limpieza no funcionó (no se pudo limpiar debido a los bloqueos locales), pero subir a la carpeta principal (que también estaba bajo control de versiones) y hacer la limpieza allí solucionó el problema.
Malvineous
2
Puede romper las cerraduras locales marcando la Break locksopción.
aagjalpankaj
1
El comentario de @Malvineous es precioso. Debería publicar esto como respuesta.
Lazy Ninja
16

Si el archivo fue bloqueado por usted mismo (la misma cuenta svn), puede seguir estos pasos:

Haga clic derecho en el archivo o carpeta bloqueado, seleccione TortoiseSVN-> Obtener bloqueo ... y marque " [] Robar los candados " en la esquina inferior izquierda del cuadro de diálogo, haga clic en "Aceptar". Si se completa correctamente, está bien. Cuando vuelve a hacer clic con el botón derecho en el archivo, puede ver TortoiseSVN-> Liberar bloqueo ... , haga clic para desbloquear.

cuixiping
fuente
12

Usando la línea de comando svn para desbloquear las carpetas locales, solo use svn cleanup.

Antes de:

# svn commit -m "fixing #1234"

cometer

# svn st

antes de

# svn cleanup

Después:

# svn st

después

# svn commit -m "fixing #1234"

after2

Sebas
fuente
10

Para cualquiera que todavía tenga este problema ( Error: copia de trabajo '{DIR}' bloqueada ), tengo su solución:

Descubrí que cuando una de las ventanas de TortoiseSVN se bloquea, deja un TSVNCache.exe que todavía tiene algunos identificadores en su copia de trabajo y eso está causando los problemas de bloqueo que está viendo (y también evita que Clean Up haga su trabajo).

Entonces para resolver esto:

Ya sea

1a) Utilice Process Explorer o similar para eliminar los identificadores propiedad de TSVNCache.exe

1b) ... O incluso más fácil, simplemente use el Administrador de tareas para eliminar TSVNCache.exe

Luego

2) Haga clic derecho -> TortoiseSVN -> Limpiar. Solo es necesario marcar "Limpiar el estado de la copia de trabajo".

A partir de ahí, feliz actualización / compromiso. Puede reproducir el comportamiento de bloqueo haciendo SVN Update y luego eliminando rápidamente su proceso TortoiseProc.exe antes de que finalice la actualización.

Jonathon J Howey
fuente
8

Esta fue la primera vez que tuve este problema. Incluso intenté reiniciar la PC, sin efecto. Esto resuelve mi problema:

Solución para mi:

  1. Haga clic derecho en Project Working Directory.
  2. Navegue TortoiseSVN .
  3. Navegar para limpiar .
  4. Deje todas las opciones predeterminadas y marque Romper bloqueos
  5. Haga clic en Aceptar

Esto funciona para mi. Pude cometer cambios.

WilliamK
fuente
1
Marcar la casilla de verificación Romper bloqueos soluciona mi problema.
Banketeshvar Narayan
Esta es la respuesta perfecta que estaba buscando.
Muchísimas
Esta debería ser la respuesta correcta. ¡Práctico, fácil y directo al grano!
Oana-Elena Danescu
3

Para desbloquear un archivo en su copia de trabajo desde el símbolo del sistema que actualmente está bloqueado por otro usuario, use la --forceopción.

$ svn unlock --force tree.jpg

manav mn
fuente
¿Qué pasa si quiero desbloquear un directorio?
IgorGanapolsky
@IgorGanapolsky Dar el nombre del directorio en lugar del nombre del archivo en el comando anterior
manav mn
@IgorGanapolsky ¿Qué mensaje de error está recibiendo? Déjame comprobar
manav mn
¡El nodo no es un archivo !
IgorGanapolsky
3

Tuve este problema y he realizado los siguientes pasos para resolverlo:

  1. Ir a la carpeta principal en lugar de la carpeta secundaria
  2. Seleccione la limpieza de SVN
  3. Haga clic en Aceptar.

¡Haga este paso en la carpeta principal en lugar de la carpeta secundaria!

¡Funcionó para mí!

Akhilesh
fuente
1

Estaba moviendo una carpeta un nivel hacia arriba y hacia otra carpeta. Mi error fue mover desde dentro de la carpeta principal.

Mal ejemplo:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVN necesita actualizar el directorio principal con la información de las carpetas eliminadas.
Debe hacerlo desde la raíz común de las carpetas de origen y destino o utilizar rutas completas.

Buen ejemplo:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
rasky74
fuente
1

Tuve este problema en el que no pude desbloquear un archivo desde el lado del cliente. Decidí pasar al lado del sever que era mucho más simple.

En el servidor SVN:

Localizar cerraduras

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

Quitar cerradura

 svnadmin rmlocks /root/of/repo “path/to/file” 

¡Eso es!

Apilador
fuente
0

Solucion:

  1. Haga clic derecho en Project Working Directory.
  2. Navegue TortoiseSVN.
  3. Navegar para limpiar.
  4. Seleccione Limpiar el estado de la copia de trabajo (marque la casilla de verificación)
  5. Haga clic en Aceptar
  6. Repita los pasos 1 y 2 y luego navegue para liberar el bloqueo.
  7. Haga clic en Aceptar. Se abre el bloqueo de su proyecto.
Vinayak
fuente
0

Además de la respuesta de David M, mientras realiza la limpieza -> marque la opción 'romper bloqueos'. Esto asegurará la liberación de bloqueos. Luego, actualice svn. Esto funcionó para mí.

Vinnu
fuente
0

Para desbloquear un documento bloqueado: 1. Haga clic con el botón derecho -> Bloquear 2. Marque la casilla de verificación "Robar los candados" 2. Suelte el candado

usuario7257040
fuente
0

Investigo mucho sobre este problema, pero ninguna solución soluciona mi problema hasta que intento esto:

Mi carpeta de repositorio se comparte con una máquina virtual de Windows xp, así que ejecuto la limpieza desde la VM y luego ejecuto SVN UPDATE desde el host.

Funcionó para mí.

Saludos desde Costa Rica.

Luisca94
fuente
0

Pude resolver este problema en mi máquina cambiando el nombre de las carpetas para reducir la ruta de la carpeta.

rsivakumar
fuente
-1

Esto sucedió después de que Tortoise se corrompiera y fallara al intentar actualizar las carpetas. Terminé reinstalando Tortoise, pero el bloqueo fantasma todavía estaba presente. A partir de ahí tuve que eliminar la carpeta y hacer una nueva compra. Obviamente, tuve mucha suerte de no tener ningún cambio nuevo que realizar en ese momento. De todos modos, no es una gran noticia, y si alguien tiene una solución mejor, me encantaría escucharla yo mismo. Incluso el uso de "Break Lock", es decir, desbloquear con la opción de fuerza, no cambió nada.

JMM
fuente
-1

Limpiar, marcar todas las casillas de verificación => Esto funciona para mí

Đức Thắng Nguyễn
fuente
Igual que Đức Thắng Nguyễn. Haga una limpieza "sólida".
-1

Encontré este problema después de estas operaciones:

  1. obtener bloqueo en la carpeta
  2. modificar archivos
  3. eliminar archivos y actualizar carpetas -> nuevos archivos descargados
  4. intenta cometer o liberar el bloqueo

Finalmente resolví el problema forzando el bloqueo nuevamente: TortoiseSVN -> Obtener bloqueo -> marque "robar bloqueo" y luego confirme o libere el bloqueo.

med_alpa
fuente