Error de copia de trabajo bloqueado en tortoise svn mientras se confirmaba

94

Estoy usando Tortoise SVN para actualizar y confirmar cambios en el repositorio en el servidor cada vez que hago cambios en mi copia de trabajo. Pero a partir de unos días no puedo confirmar los cambios y aparece el siguiente error cada vez que intento confirmar.

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

Intenté desbloquear la carpeta haciendo clic derecho sobre ella y seleccionando Tortoise SVN> Liberar bloqueo , dice

No hay nada que desbloquear. Ningún archivo tiene un candado en esta copia de trabajo

¿Cuál podría ser el problema?

Añil
fuente

Respuestas:

232

No hay problema ... intente esto:

  • Vaya a la carpeta SVN de nivel superior.
  • Haga clic derecho en la carpeta (que tiene sus archivos svn)> TortoiseSVN> Limpiar

Esto seguramente resolverá tu problema. Hice esto mucho tiempo ... :)

Nota. Asegúrese de que la opción "Romper bloqueos" esté seleccionada en el cuadro de diálogo Limpieza.

MicroOjos
fuente
gracias @MicroEyes ... ahora puedo comprometerme. Solo tengo una pequeña duda. Después de realizar cambios en un archivo, ¿debo primero confirmar y luego actualizar el archivo (en la copia de trabajo) o actualizar y luego confirmar?
Anil
2
Siempre siga la actualización y luego confirme. De lo contrario, recibirá un mensaje de TortoiseSVN para actualizar, porque la copia de su versión es anterior a la almacenada en el servidor SVN. De todos modos, debes actualizar y comprometerte.
MicroEyes
1
sí ... eso resolvió mi problema relacionado con la actualización de mi copia actual a la revisión svn.
Jayesh Bhoi
Acabo de agregar archivos en SVN e intento confirmarlo, pero obtuve el mismo error. Intenté el comando cleanUp pero no puedo resolver este problema.
Ashok Chandrapal
Estoy experimentando esto mucho. ¿Puedo reducir el tiempo que tarda svn antes de mostrar este mensaje de error (de cinco a diez segundos actualmente)? Entonces puedo comenzar la limpieza antes.
no es un usuario
15

La respuesta aceptada no funcionó para mí. Para solucionar ese problema, tuve que hacer clic con el botón derecho en el archivo que estaba bloqueado, seleccionar repo-browser. Esto abrió una ventana emergente con los archivos tal y como están en el servidor SVN. Luego hice clic derecho en el archivo bloqueado y lo seleccioné break lock.

Cuando cerré el navegador del repositorio, ¡de vuelta al explorador, finalmente pude comprometerme!

Johann
fuente
Solo necesita asegurarse de que la opción "Romper bloqueos" esté seleccionada en el cuadro de diálogo Limpieza. Creo que está seleccionado de forma predeterminada (y es por eso que esto no se mencionó en la respuesta original).
Nux
12
  1. Haga clic derecho en la carpeta.
  2. TortoiseSVN-> Verificar modificaciones.
  3. Haga clic en el botón Comprobar repositorio.
  4. Romper el bloqueo en todos los archivos devueltos.
Elsabe
fuente
3

También me encontré con este problema. Para algunos, me gustaría señalar que si está bloqueado CONSULTAR CON SU EQUIPO. Alguien del equipo puede tener algunas cosas bloqueadas porque están trabajando en ellas (esto permite a los desarrolladores trabajar en cosas sin que otros entren y traten de trabajar en el mismo contenido también). Si ese es el caso, liberar el bloqueo y luego actualizar tiene el potencial de perder datos para el desarrollador que lo bloqueó.

Con eso en mente, mi preocupación era que la opción "limpiar" posiblemente cambiaría mi copia de trabajo o eliminaría información del nivel de Repo de Subversion. Ese no es el caso. La respuesta funcionó para mí. El mío se bloqueó cuando hice clic en cancelar durante la mitad de una actualización. Terminé sacando algunas de nuestras ramas y no necesitaba las cosas, así que presioné cancelar. Mi copia de trabajo se bloqueó. No pude encontrar ningún documento que apareciera como "bloqueado" cuando utilicé el comando 'liberar bloqueo'. Esto me dejó perplejo y después de una lectura rápida (y este hilo) intenté el comando 'limpiar'. Después de una limpieza, resolvió mi problema y ya no se bloqueó nada.

fuente: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Eric
fuente
2

Hay varios significados de "bloqueo" en SVN y algunas de estas respuestas que hablan de "romper bloqueo" o un compañero de equipo sosteniendo un bloqueo no están usando el significado relevante de la pregunta original. Esta pregunta trata de "bloqueos de copia de trabajo" (es decir, son completamente locales a la copia de trabajo en su computadora y no tienen nada que ver con usted o sus compañeros de equipo que mantienen un bloqueo / desprotección en un archivo). La respuesta aceptada por MicroEyes se refiere al uso correcto y es su mejor opción cuando esto sucede.

Si una limpieza no funciona, es posible que deba consultar una copia de trabajo nueva del proyecto. Si tiene archivos modificados y no confirmados, deberá copiarlos a la copia de trabajo nueva para no perder los cambios.

Consulte esta página en los documentos de Tortoise SVN para obtener una descripción de los tres usos de "bloqueo": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Extracto (énfasis agregado):

Los tres significados de "bloqueo"

En esta sección, y en casi todas partes de este libro, las palabras "bloquear" y "bloquear" describen un mecanismo de exclusión mutua entre usuarios para evitar conflictos entre confirmaciones. Desafortunadamente, hay otros dos tipos de "bloqueo" con los que Subversion, y por lo tanto, este libro, a veces necesita ocuparse.

El segundo son los bloqueos de copia de trabajo , utilizados internamente por Subversion para evitar conflictos entre varios clientes de Subversion que operan en la misma copia de trabajo. Por lo general, obtiene estos bloqueos cada vez que un comando como actualizar / confirmar / ... se interrumpe debido a un error. Estos bloqueos se pueden eliminar ejecutando el comando de limpieza en la copia de trabajo, como se describe en la sección llamada "Limpieza".

...

G. Stevens
fuente
2

No tenía idea de qué archivo tenía el bloqueo, así que lo que hice para solucionar este problema fue:

  1. Fue a la carpeta de más alto nivel
  2. Haga clic en limpiar y también marque de los métodos de limpieza -> Romper bloqueos

Esto funcionó para mí.

cosmoto91
fuente
1

Probé varias cosas, incluida "Limpieza" en subdirectorios inferiores. Finalmente, intenté actualizar la carpeta de nivel superior. Nada. Luego leí el consejo "Limpiar el nivel superior". Intenté eso. La parte de limpieza tuvo éxito, pero la cerradura permaneció. Mi solución fue volver al nivel superior, limpiar y luego limpiar cada carpeta roja (!) En la que pudiera profundizar . Después de que todo fue "Limpiado", la actualización funcionó perfectamente. La sugerencia de "romper bloqueo" también se ve bien, con la excepción de que alguien de su equipo podría tener un bloqueo legítimo en las cosas.

Jim
fuente
0

Me las arreglé para bloquear un archivo en svn, no sé cómo, pero cuando intenté (re) obtener el bloqueo (Tortoise estaba mostrando la opción "Obtener bloqueo" para el archivo), se quejó de que ya tenía el bloquear. Intenté eliminar el archivo y confirmar el cambio de directorio, el mismo resultado. Intenté CleanUp (incluida la actualización de la superposición), pero también falló.

La solución fue ir al navegador de repositorios de Tortoise, encontrar el archivo y usar la función de bloqueo de interrupción .

usuario1844643
fuente
0

Si esto ( https://stackoverflow.com/a/11764922/3045875 ) no ayuda: Verifique si otra herramienta SVN está interfiriendo y cierre la herramienta. Solo luchamos un par de horas para fusionarnos con TortoiseSVN y tuvimos docenas de errores de bloqueo de este tipo. Eventualmente pensamos que la integración de Matlabs SVN está interfiriendo y después de cerrarlo todo funcionó.

RMK
fuente