2011-02-01 18 views
45

Si ha trabajado con herramientas SVN en Eclipse (Subversión, subversivo) anteriormente, entonces es probable que esté familiarizado con el error 'copia de trabajo' XXX 'bloqueado ...'¿Por qué sigo recibiendo 'SVN: copia de trabajo XXXX bloqueado; intente realizar 'limpieza'?

Encontré una publicación muy útil con un solución para este problema: Working copy XXX locked and cleanup failed in SVN

tan grande como la solución es, es un dolor para hacerlo una y otra vez ¿alguien sabe por qué sigo recibiendo este error y qué pasos podría tomar para evitar que

.?

Contexto: Estoy creando un plugin de Eclipse que implica escuchar eventos SVN, así que al probar este plugin, estoy constantemente abriendo y cerrando el espacio de trabajo. ally haz 1 o 2 confirmaciones cada vez que abro el espacio de trabajo. De vez en cuando falla la confirmación y aparece el error de 'copia de trabajo bloqueada'. Me encantaría que este error no vuelva a suceder, por lo que cualquier consejo es apreciado.

Gracias!

+0

usted tiene sido capaz de arreglar esto sin hacer el Equipo -> Limpieza? No quiero que mis usuarios tengan que seguir haciendo una actualización/limpieza ... –

Respuesta

81
  1. Seleccione el proyecto
  2. clic derecho sobre el Proyecto
  3. equipo seleccionado -> Liberador

problema solucionado.

Nota: los pasos anteriores sólo funcionarán Eclipse (paquete de Indigo)

+0

Gracias. La limpieza definitivamente ayudó. – rickygrimes

+2

Funciona en Eclipse Luna también ... Gracias por la pista. – CanC

+0

y Keplar. ¡¡Maravilloso, gracias!! – Phish

9

He tenido muchos problemas con SVN anteriormente y una cosa que definitivamente me ha causado problemas es la modificación de archivos fuera de Eclipse o la eliminación manual de carpetas (que contiene las carpetas .svn), que probablemente me haya dado más problema.

edición También debe tener cuidado de no interrumpir las operaciones de SVN, aunque a veces un error puede ocurrir y esto podría hacer que el archivo .lock a no ser eliminado, y por lo tanto su error.

+0

Haces un buen punto, creo que la razón por la que recibí los errores es porque estaba depurando mi complemento y los puntos de interrupción estaban interrumpiendo los comandos SVN . – jbranchaud

14

Generalmente se crea un archivo .lock y decide bloquear/desbloquear el estado comprobando la existencia de este archivo. Creo que si elimina este archivo .lock solamente, entonces el problema desaparecerá.

+6

no estoy en mi computadora para probarlo ... pero ¿no lo arregla 'svn cleanup' también? Sé que generalmente solo elimino el archivo .lock: p –

+1

¿Por qué se bloquea? Nunca pedí que se bloqueara y no creo que mis interacciones con Eclipse o subversion garanticen que esté bloqueado. Además, bajo las opciones del equipo, hay opciones de bloqueo y desbloqueo. Durante este error, la opción Bloquear está habilitada y la opción Desbloquear está deshabilitada. – jbranchaud

+0

La limpieza de SVN falla también. Esa no parece ser una forma de resolver este problema. – jbranchaud

3

Después de más exploración y pruebas, parece que este problema fue causado por la depuración del plugin y el uso de puntos de interrupción. SVN/Subclipse aparentemente no le gustó tener puntos de interrupción a mitad de su ejecución y, como resultado, se crearon estos archivos de bloqueo. Tan pronto como comencé a ejecutar el complemento, este problema desapareció.

2

Tuve el mismo problema al usar el paquete com.xxx.service.model.

Para solucionarlo, primero hice una copia de seguridad de los cambios de código en el paquete modelo. Luego se eliminó el paquete del modelo y se sincronizó con el repositorio. Mostrará la entrada de toda la carpeta/paquete. Luego actualicé mi código.

Finalmente, pegue el antiguo compromiso de código en el Repositorio SVN. Funciona bien.

1

Esto me sucedió cuando copié un directorio de otro proyecto de subversión e intenté confirmarlo. La solución fue eliminar el director de .svn dentro del directorio que quería confirmar.

0

Este tipo de problema puede ocurrir cuando se elimina/mover archivos - en esencia hacer cambios en su estructura de directorios. Subversion solo comprueba los cambios realizados en los archivos que ya se han agregado a Subversion, no los cambios realizados en la estructura del directorio. En lugar de utilizar copia de su sistema operativo etc comandos en lugar utilizan svn copy etc Por favor, vea http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html

Además, tras confirmar los cambios svn primeras tiendas un "resumen" de los cambios en la lista de tareas. Al realizar las operaciones svn en esta lista de tareas pendientes, bloquea el archivo para evitar otros cambios mientras se realizan estas acciones svn. Si la acción svn se interrumpe a medio camino, por ejemplo, por un bloqueo, el archivo permanecerá bloqueado hasta que svn pueda completar las acciones en la lista de tareas pendientes. Esto se puede "reactivar" utilizando el comando svn cleanup. Consulte http://svnbook.red-bean.com/en/1.7/svn.tour.cleanup.html

4

Asegúrese de limpiar exactamente lo que dice la consola. Por ejemplo, si una subcarpeta (un paquete) está bloqueado:

svn: E155004: Commit failed (details follow): 
    svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked 
    svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked. 

limpieza C:/Users/liparulol/espacio de trabajo/tparser/src/de/mc/ETN/analizadores/fin

Luego hay que limpie la carpeta especificada y no todo el proyecto. Si está en eclipse, haga clic derecho en el paquete, no en la carpeta del proyecto y ejecute la limpieza.

+0

esta es la verdadera solución, salvavidas. – andreasperelli

3

Esto sucederá cuando algo salió mal en una de sus carpetas en su proyecto. Debe encontrar la carpeta exacta que se bloqueó y ejecutar svn cleanup en la carpeta específica. Puede resolver esto como sigue:

  1. plazo svn commit comando para averiguar qué carpeta salió mal.
  2. cambie el directorio a esa carpeta y ejecute svn cleanup. Entonces está hecho.
0

Solución: Paso 1: tiene que quitar el “bloqueo” de archivos que se presentan en “.svn” archivo oculto. Paso 2: En caso de que si no hay un “bloqueo” archivo a continuación, que se vería “we.db” hay que abrir esta base de datos y la necesidad de eliminar el contenido sola de las siguientes tablas - bloquear - wc_lock Paso 3: Limpie su proyecto Paso 4: Intente comprometerse ahora. Paso 5: Hecho.

1

Lo que sigue debe desbloquear una copia de trabajo bloqueada (probado en la versión 1.6.11 cliente SVN y la versión elipse: Mars.2 Release (4.5.2))

paso 1: (ir al directorio local de trabajo) $ cd working_copy_dir

paso 2: (conectarse a la base de datos svn sqlite) $ sqlite3 .svn/wc.db

paso 3: (eliminar todos los registros de la tabla WC_LOCK) sqlite> eliminar de WC_LOCK;

paso 4: (desconectarse de SQLite 3 base de datos) sqlite> ctrl + d

paso 5: (de Eclipse) haga clic derecho en su copia de trabajo, a continuación, haga clic en Equipo -> Actualizar/limpieza

Cuestiones relacionadas