¿Cómo arreglar "falta el área de administración de la copia de trabajo que falta" en SVN?

184

Eliminé manualmente un directorio que acabo de agregar, sin conexión, en mi repositorio. No puedo restaurar el directorio.

Cualquier intento de hacer una actualización o una confirmación fallará con:

"blabla/.svn" containing working copy admin area is missing.

Entiendo por qué, pero hay de todos modos para arreglar esto.

No quiero verificar el repositorio completo y agregarle mis cambios manualmente, tomaría horas.

e-satis
fuente

Respuestas:

148

De acuerdo con esto: http://www.devcha.com/2008/03/svn-directory-svn-containing-working.html

Extraiga la carpeta "blabla" en una ubicación diferente y luego copie su carpeta .svn nuevamente en la "blabla" original.

marca
fuente
62
Tengo mucho SVN. Tirar basura .svnsubdirectorios por todo el lugar debe haber sido la peor idea en el historial de control de versiones.
Johannes Fahrenkrug
9
Amigos, revisen las sugerencias a continuación de Rob, es mucho más fácil que la solución actual.
Mohammad Arif
Mohammed, gracias por el aviso. Eso funcionó para mí. Estaba tratando de hacer que SVN ignorara un directorio de registro, y eliminar .svn me llevó a este problema. La solución de Rob lo resolvió.
Asmor
Johannes, tampoco soy un defensor de SVN, pero la ventaja de los directorios .svn es que puedes consultar los subdirectorios de un repositorio y mantener el control de versiones.
Joseph Persie
@MohammadArif, ahora hay dos "Robs"
Charles Clayton
123

fwiw, tuve una situación similar y usé svn --force delete __dir__ . Eso resolvió el problema para mí. Luego seguí trabajando con mi copia de trabajo como de costumbre.

Matt Setter
fuente
2
Esto funcionó para mí también. Las actualizaciones y limpiezas fallaron porque el directorio nunca estuvo en el repositorio, pero la copia de trabajo estaba segura de que estaba bajo control de revisión. Me pregunto si agregué el directorio, pero luego lo eliminé antes de comprometerlo.
Magnus
1
Esto es muy bueno. Agregué un directorio, eliminé el .svn pero nunca me comprometí. Esto hizo el truco por completo
Eric
8
Gracias; Esta respuesta me ahorró mucho tiempo. svn cleanupEntonces svn --force delete <directory-that-doesn't-exist-but-should>trabajó para mí.
mpontillo
Trabajé en el segundo intento, primero probé sin --force, que de alguna manera dejó un archivo de bloqueo en .svn del padre que tuve que eliminar manualmente. La segunda vez con --force solucionó el problema.
Jörn Horstmann
3
Hm, ese comando simplemente me da el mismo error de "copia de trabajo".
Oscar
72

Lo que hice para solucionar esto fue eliminar la copia local de la carpeta en cuestión y luego hacer una copia del svn updatepadre directamente después.

Lo arregló de inmediato.

Maurizio
fuente
3
No puedo creer ... Lo intenté todo ... ¡y fue así de fácil! Funcionó perfectamente, muchas gracias!
lucaferrario
Esta es la respuesta más directa.
joaerl
35

¿Puedes intentar ver una nueva copia del directorio principal?

Editar: para ser un poco más específico, quise sugerir subir un nivel y eliminar el directorio que lo contiene. Entonces haz un

svn update --set-depth infinity

para reemplazar el directorio

Rob Wells
fuente
Lo intenté pero por alguna extraña razón, termino con un directorio vacío. No entiendo ...
e-satis
También debería funcionar un <code> svn update blabla </code> explícito del padre.
jmanning2k
@ jmanning2k, eso es lo que pensé también, pero el OP dijo que lo había intentado y que no había funcionado.
Rob Wells
Para aclarar, sugerí --set-depth infinitypor esto: stackoverflow.com/questions/866835/…
Wim Coenen
1
Esto necesita muchos más votos a favor ... una solución limpia rápida y relativamente (para los estándares svn).
Dino
6

Agregué un directorio a svn, luego eliminé accidentalmente la carpeta .svn dentro.

solía

svn delete --keep-local folderName

para arreglar mi problema

Alejandro
fuente
Esto funcionó para mí cuando mi IDE agregó un directorio, y luego moví un directorio del mismo nombre a su lugar antes de que se confirmara.
quellish
Probé esto, pero aún no pude cometer. He utilizado svn checkout --force [url]la que recrea la carpeta .svn
Lex
4

Acabo de hacer 'svn revert / blabla' y funcionó, la carpeta está de vuelta y puedo svn eliminarla

Mala
fuente
Gracias. Tuve este problema e intenté su sugerencia y funcionó.
Boric
3

El error "Falta el directorio 'blah / .svn' que contiene el área de administración de la copia de trabajo" ocurrió cuando intenté agregar el directorio al repositorio, pero no tenía suficientes privilegios del sistema de archivos para hacerlo. El directorio aún no estaba en el repositorio, pero afirmaba estar bajo control de versión después de la adición fallida.

Verificar una copia del directorio principal en otra ubicación y reemplazar la carpeta .svn en el directorio principal de la copia de trabajo me permitió agregar y confirmar el nuevo directorio con éxito (después de corregir los permisos del archivo, por supuesto).

Rob DiCiuccio
fuente
2

Usamos maven y svn. Fue un registro erróneo del directorio de destino a SVN lo que causó este error. Eliminar eso solucionó todo, si esta pista ayuda a alguien.

Madu
fuente
¿Eliminar qué / de dónde exactamente?
DerMike
maven crea el directorio "objetivo", al construir. Por lo general, se supone que nadie debe registrarse en este. Un registro de inicio hizo un problema de permiso la próxima vez que finalizó el proceso, lo que creó este error. Eliminar el directorio "objetivo" de SVN resolvió el problema.
Madu
2

Traté svn rm --force /path/to/dirde nada pero terminé corriendo svn upy me lo arregló.

Nathan JB
fuente
1

Recientemente tuve este error, cuando los archivos fueron excluidos por la configuración en mis globales SVN. El error fue especialmente desagradable ya que también eliminé los archivos directamente del repositorio, y esto significaba que las soluciones anteriores se negaban a funcionar. En este caso, eliminar manualmente el directorio .svn del directorio que eliminé de SVN me permitió ejecutar una actualización que luego me permitió confirmar.

Casebash
fuente
1

Tuve el mismo problema cuando intentaba cambiar "C: \ supercarpeta"

Error de mensajes:

Directory 'C:\superfolder\subfolder\.svn'
containing
working copy admin area is missing
Please execute the 'Cleanup' command.

Después de intentar hacer una "limpieza", recibí el siguiente error:

 Cleanup failed to process the following paths:
 C:\superfolder\
'C:\superfolder\subfolder\' is not a working copy directory

Solución:

  1. Eliminar la carpeta "subcarpeta"
  2. Limpia la carpeta "supercarpeta"
  3. Intente cambiar de nuevo la carpeta "supercarpeta"

Esto funcionó para mí. Avísame si también te funciona.

Andreas
fuente
1

Tuve este error recientemente. Fue causado por la raíz que posee un par de archivos en el directorio que da este error.

Después de cambiar los permisos, todo funcionó como se esperaba.

JJ
fuente
1

No entendí mucho de tus publicaciones. Mi solucion es

  1. Corte la carpeta problemática y cópiela en alguna ubicación.
  2. Obtenga la solución de Subversion en otro directorio de trabajo (solo uno nuevo).
  3. Agregue su carpeta guardada a la nueva copia de trabajo y agréguela como proyecto existente (si es un proyecto como en mi caso).
  4. Cometer;
M'vy
fuente
1

Tuve este problema Simplemente mueva blabla a otra ubicación temporalmente, dígale a svn que la revierta y luego muévala hacia atrás. Se trata como una nueva adición. ¡Sencillo!

Bórico
fuente
1

El más simple que me ayudó:

rm -rf _dir_in_question_
svn up

Si tiene cambios en el directorio problemático, entonces esta no es una buena solución para usted.

allprog
fuente
1

Me encontré con este problema al reemplazar una biblioteca API de terceros con una versión más nueva, y ninguna de las soluciones aquí realmente funcionó para mí porque quería reemplazar la versión SVN con la versión local. Mi solución fue la siguiente:

1) Mueva la carpeta ofensiva a mi directorio de inicio, elimínela de SVN y confirme:

mv foldercausingproblem ~/
svn --force delete foldercausingproblem
svn commit --message "Temporary removing folder with old API"

2) Vuelva a colocar la carpeta, agréguela a SVN y confirme nuevamente:

mv ~/foldercausingproblem ./
svn --force add .
svn commit --message "Finally all working!"

Ligeramente irritante tener que cometer dos veces, pero parece haber funcionado bien.

Jamie Brown
fuente
En general, me gusta trabajar en código por separado de mi copia de trabajo del repositorio (IDE, compiladores, analizadores de errores, etc. no me gusta .svn, y no hay un comando 'TODOS IGNORE .SVNs EXCEPT SVN!' En Eclipse afaik); Esto significa que el proceso básico de confirmación de SVN para mí es: 1. Pagar la copia de trabajo del repositorio 2. Eliminar el directorio raíz del proyecto Tengo una actualización para 3. Copiar y pegar el directorio del proyecto actualizado en el directorio principal del proyecto en la copia de trabajo 4. svn agregue --force <projname> 5. commit. Esto generalmente funciona, pero ocasionalmente puede arrojar el error del OP. La solución de Jamie Brown funcionó en mi caso
CCJ
0

En caso de que alguien quiera otra solución:

  1. Registre su nueva carpeta como "foldername2"
  2. Vaya al navegador de repositorios Tortise SVN
  3. Cambie el nombre de "foldername2" a "foldername"
  4. En Windows Explorer haga una actualización

Espero que ayude a alguien.

-Ev

Ev.
fuente
Una solución única de Windows.
Raptor
0

Para mí, el mismo problema ocurrió cuando ambos:

  • eliminado ( --force) un archivo .map
  • agregado * .map a svn:ignoreviasvn propedit svn:ignore .

Mi solución fue:

  1. deshacer cambios a la propiedad
  2. confirmar cambios en los archivos
  3. verifique una copia nueva del repositorio (¡ay!)
  4. cambiar la propiedad y comprometerse
18446744073709551615
fuente
0

Tuve este problema cuando intentaba agregar un directorio a svn. Lo resolví yendo al navegador de repositorios. Haga clic derecho en la ventana izquierda, elija agregar carpeta y agregue el directorio directamente en el navegador de repositorios.

Luego eliminé el directorio localmente (después de la copia de seguridad, por supuesto), hice una limpieza y una actualización de svn y todo volvió a funcionar.

Partícula
fuente
Podría agregar que esto se agrega a mi archivo "svn apesta".
Mota
0

En primer lugar, verifique el proyecto en su sistema en una carpeta. Luego, elimine la carpeta .svn del proyecto en conflicto y copie la carpeta .svn de la nueva carpeta de pago y péguela en su carpeta de copia de trabajo. Entonces el problema está resuelto.

Jaideep Singh Raikwar
fuente
0

Una tarea común que experimenté fue tener que tomar un directorio de repositorio en la preparación y copiarlo en otro repositorio, ambos bajo SVN y ambos con el mismo nombre. La forma en que funcionó para mí fue la siguiente:

svn --force delete PROBLEMATIC-DIR
svn export "https://OLD REPO-A/ new-repo-A"
svn add new-repo-A
svn commit new-repo-A
texasdave
fuente