Tengo muchos cambios en una carpeta de trabajo, y algo falló al intentar hacer una actualización.
Ahora cuando publico una 'limpieza de svn' obtengo:
>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control
MemPoolTests.cpp es un nuevo archivo agregado por otro desarrollador y que fue eliminado en la actualización. No existía en mi carpeta de trabajo antes.
¿Hay algo que pueda hacer para intentar avanzar sin tener que sacar una copia nueva del repositorio?
Aclaración: Gracias por las sugerencias sobre mover el directorio fuera del camino y traer una nueva copia. Sé que es una opción, pero es una que me gustaría evitar, ya que hay muchos cambios anidados en varios directorios (esto debería haber sido una rama ...)
Espero una forma más agresiva de hacer la limpieza, tal vez de alguna manera forzar el archivo SVN está teniendo problemas para volver a un estado conocido (e intenté eliminar la copia de trabajo ... eso no ayudó).
Respuestas:
Cuando comenzar de nuevo no es una opción ...
Eliminé el archivo de registro en el
.svn
directorio (también eliminé el archivo ofensivo.svn/props-base
), hice una limpieza y reanudé mi actualización.fuente
find . -type f -name lock
sudo rm -rf | find . -type f -name lock
.svn/prop-base
que tengo.svn/[pristine|tmp|entries|format|wc.db]
Las cosas han cambiado con SVN 1.7, y la solución popular de eliminar el archivo de registro en el directorio .svn no es factible con el cambio a una implementación de copia de trabajo de la base de datos.
Esto es lo que hice que parecía funcionar:
Todo eso es un poco confuso, en cuanto al proceso. Esencialmente, lo que estamos haciendo es eliminar el .svn corrupto y luego crear un nuevo .svn para la misma ruta de pago. Luego movemos este nuevo .svn a nuestro antiguo directorio de trabajo y lo actualizamos al repositorio.
Acabo de hacer esto en TSVN y parece funcionar bien y no requiere un pago y descarga completos.
-Jody
fuente
svn cleanup --force
. Y, por supuesto, todas las operaciones de agregar, eliminar y (con 1.8) renombrar se pierden.Echa un vistazo a
http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/
Resumen de la corrección del enlace anterior (Gracias a Anuj Varma)
fuente
Si todo lo demás falla:
fuente
La última versión (estoy usando 1.9.5) resuelve este problema agregando una opción de "Romper bloqueos" en el menú de limpieza. Solo asegúrese de que esta casilla de verificación esté seleccionada cuando realice la limpieza.
fuente
Esta respuesta solo se aplica a las versiones anteriores a 1.7 (gracias @ ŁukaszBachman) .
Subversion almacena su información por carpeta (en .svn), por lo que si solo está tratando con una subcarpeta, no necesita verificar todo el repositorio, solo la carpeta que ha borrado:
Esto le dará una buena copia de trabajo de la carpeta borked, pero aún tiene sus cambios respaldados en borked_dir.bak. El mismo principio se aplica con Windows / TortoiseSVN.
Si tiene cambios en una carpeta aislada, eche un vistazo a
o
fuente
svn up
el mismo repositorio que estaba en medio de unasvn up
pestaña diferente. Olvidé que había hecho eso y lo dejé incompleto la noche anterior..svn
directorio.Luego
Espero eso ayude
fuente
Tuve exactamente el mismo problema. No podía comprometerme, y la limpieza fallaba.
Utilizando un cliente de línea de comandos, pude ver un mensaje de error que indicaba que no podía mover un archivo de
.svn/props
a.svn/prop-base
.Miré el archivo específico y descubrí que estaba marcado como de solo lectura. Después de eliminar el atributo de solo lectura, pude limpiar la carpeta y confirmar mis cambios.
fuente
Es posible que tenga un problema con dos nombres de archivo que solo difieren en mayúsculas. Si se encontró con este problema, crear otro directorio de copia de trabajo no resuelve el problema.
Los sistemas de archivos actuales de Windows (es decir, basura) simplemente no perciben la diferencia entre
Filename
yFILEname
. Tienes dos soluciones posibles:svn rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename
fuente
Ejecute el
svn cleanup
comando en una terminal (si falla desde Eclipse, que fue mi caso):Intenté diferentes soluciones explicadas aquí, pero ninguna funcionó .
Equipo de acción → La actualización de la cabeza falla:
Equipo de acción → La limpieza falla con el mismo error.
Solución que funcionó para mí: ejecute el comando svn cleanup en una terminal .
El comando tuvo éxito.
Entonces Team → Update en Eclipse funcionó nuevamente.
Nota: mi versión SVN es 1.9.3.
También verifique la respuesta de Chris si
svn cleanup
no funciona.fuente
Intenté hacerlo a
svn cleanup
través de la consola y obtuve un error como:Así que creé este archivo manualmente (vacío) y lo hice
svn cleanup
nuevamente. Esta vez se hizo bien.fuente
Yo tuve el mismo problema. Para mí, la causa fue un conflicto con EasySVN y (TortoiseSVN o simplemente SVN). Tuve actualización automática y confirmación con EasySVN (que no funcionaba).
Cuando apagué esto, no pude limpiar, confirmar o actualizar. Ninguna de las soluciones anteriores funcionó, pero el reinicio sí :)
fuente
Acabo de tener este mismo problema en Windows 7 de 64 bits. Ejecuté la consola como administrador y eliminé el directorio .svn del directorio del problema (recibí un error sobre registros o algo, pero lo ignoré). Luego, en el explorador, eliminé el directorio del problema que ya no se mostraba como bajo control de versiones. Luego, ejecuté una actualización y las cosas procedieron como se esperaba.
fuente
Si el problema es la distinción entre mayúsculas y minúsculas (que puede ser un problema cuando se registra en una Mac, así como en Windows) y no tiene la opción de verificar en un sistema * nix, lo siguiente debería funcionar. Aquí está el proceso desde el principio:
(El pago se produce ... entonces ...)
Aquí SVN está tratando de revisar dos archivos con nombres similares que difieren solo por mayúsculas
Header_3_noBookmark.gif
y minúsculasHeader_3_nobookmark.gif
. Los sistemas de archivos de Mac predeterminan la insensibilidad a mayúsculas y minúsculas de manera que SVN se ahoga en situaciones como esta. Entonces...Sin embargo, correr
svn cleanup
no funciona, como sabemos.spacer.gif
no es el problema aquí ... Simplemente no puede pasar del error anterior al siguiente archivo. Así que eliminé todos los archivos del directorio que no sea.svn
, y eliminé el registro SVN. Esto hizo que la limpieza funcionara, de modo que pudiera revisar y cambiar el nombre del archivo ofensivo.Después de esto, pude volver al directorio raíz del proyecto y ejecutar
svn up
para ver el resto.fuente
Siempre que tengo problemas similares uso rsync (NB: uso Linux o Mac OS X) para ayudar de esta manera:
De esa manera, tendrá una salida nueva, pero con los mismos archivos de trabajo. Para mí esto siempre funciona como un encanto.
fuente
Me encontré con eso también últimamente. El truco para mí fue después de seleccionar "Limpiar", en el cuadro de diálogo de opciones emergente, marcar "Romper bloqueos" y luego "Aceptar". Se limpió con éxito para mí.
fuente
Subclipse se confunde con el comportamiento de bloqueo verdaderamente diabólico de Windows. Unlocker es tu amigo. Esto puede encontrar archivos bloqueados y liberar por la fuerza los bloqueos.
fuente
(Antes de intentar mover carpetas y hacer un nuevo pago).
Elimine la carpeta en la que se encuentran los archivos ofensivos: sí, incluso la
.svn
carpeta, luego haga unasvn cleanup
en la carpeta superior / principal.fuente
Me enfrenté al mismo problema. Después de algunas búsquedas en Internet encontré el siguiente artículo . Luego me di cuenta de que estaba registrado como un usuario diferente del usuario que había utilizado para configurar SVN, básicamente un problema de permiso.
fuente
Cuando enfrento este problema con TortoiseSVN (Windows), voy a Cygwin y ejecuto la ' limpieza de svn ' desde allí; me limpia correctamente, después de lo cual todo funciona desde TortoiseSVN.
fuente
Las respuestas aquí no me ayudaron, pero antes de revisar el proyecto nuevamente, cerré y abrí Eclipse (Subversive es mi cliente SVN) y el problema desapareció.
fuente
Es posible que no se aplique en todas las situaciones, pero cuando recientemente encontré este problema, mi "solución" fue actualizar el paquete de Subversion en mi sistema. Había estado ejecutando 1.4.algo, y cuando actualicé a la última versión (1.6.6 en mi caso) el pago funcionó.
(Intenté volver a descargarlo, pero un pago a un directorio limpio siempre colgaba en el mismo lugar).
fuente
El bloqueo de solo lectura a veces ocurre en unidades de red con Windows. Intente desconectar y volver a conectarlo nuevamente. Luego limpie y actualice.
fuente
Después de analizar la mayoría de las soluciones que se citan aquí, seguía recibiendo el error.
El problema era OS X sin distinción entre mayúsculas y minúsculas . Verificar un directorio que tiene dos archivos con el mismo nombre, pero diferentes mayúsculas causa un problema. Por ejemplo, ApproximationTest.java y Approximationtest.java no deberían estar en el mismo directorio. Tan pronto como nos deshacemos de uno de los archivos, el problema desaparece.
fuente
Llegué a un problema en el que, después de una actualización, SVN mostró una carpeta en conflicto. Curiosamente, esto solo era visible a través de la línea de comando: TortoiseSVN pensó que todo estaba bien.
svn cleanup
`svn revert
`svn update
ysvn resolve
estaban todos sin éxito en la fijación del mismo.Finalmente resolví el problema de la siguiente manera:
Después de eso, todo estuvo bien.
Tenga en cuenta que no tuve ningún cambio local, por lo que no sé si estaría en riesgo si lo hiciera. No utilicé el método de eliminación / actualización sugerido por otros; entré en este estado al intentarlo en el directorio my_dir / sub_dir / sub_sub_dir (que comenzó con los mismos síntomas), por lo que no quería arriesgarme a empeorar las cosas ¡de nuevo!
No del todo sobre el tema, pero tal vez sea útil si alguien se encuentra con esta publicación como lo hice yo.
fuente
¡No no no! Si está utilizando SVN 1.7 o superior, ¡el comando de limpieza debería hacer el trabajo!
También hice algunos experimentos y descubrí que la solución (al menos en Eclipse ) estaba ejecutando la limpieza solo para la carpeta especificada en el mensaje de error y no para todo el proyecto.
fuente
Lo hice
sudo chmod 777 -R .
para poder cambiar los permisos. Sinsudo
esto, no funcionaría, dándome el mismo error que ejecutar otros comandos.Ahora puede hacer
svn update
o lo que sea, sin tener que desechar todo el directorio y volver a crearlo. Esto es especialmente útil, ya que su IDE o editor de texto ya puede tener ciertas pestañas abiertas o problemas de sincronización. No necesita desechar y reemplazar su directorio de trabajo con este método.fuente
Resolví este problema copiando el directorio .svn de algún colega en el mío y luego actualizando mi copia de trabajo. Fue una solución agradable, rápida y limpia.
fuente
Hay algunas sugerencias muy buenas en la respuesta anterior, pero si tiene un problema con TortoiseSVN en Windows (un buen producto, pero ...) siempre recurra a la línea de comandos y haga primero una simple "limpieza de svn".
En muchas circunstancias, el cliente de Windows no ejecutará el comando de limpieza, pero la limpieza funciona bien usando la utilidad de línea de comando SVN.
fuente
Si bien se enfrenta a un problema similar, la fusión manual en la vista de sincronización del repositorio ayudó a resolver el problema.
Un nombre de archivo estaba en conflicto con otro y mencionaba claramente el problema. Cambiar el nombre del archivo más nuevo a un nombre diferente lo resolvió.
fuente