2011-02-08 10 views
103
[email protected]:~/myproject$ svn stat 
?  runserver.sh 
?  media/images/icons 
?  apps/autocomplete 
[email protected]:~/myproject$ svn add apps/autocomplete 
svn: warning: 'apps/autocomplete' is already under version control 

svn stat dice que no está bajo control de versión, entonces trato de agregarlo, y luego me dice que sí. Cuando hago un svn ci, no se cierra, y no aparece cuando trato de buscar el repositorio en línea.SVN: ¿La carpeta ya está bajo control de versión pero no se está iniciando?

¿Cómo puedo comprometerme?

+2

¿La carpeta "autocompletar" contiene un subdirectorio ".svn" roto? Además, ¿limpiaste? :) – bzlm

+1

¿Has probado una: svn cleanup, solo una puñalada en la oscuridad? – shaunhusain

+0

Me encontré con este problema cuando había copiado un directorio registrado en otra carpeta de mi proyecto. Eliminar el antiguo .svn funciona! – paulrehkugler

Respuesta

155

Copie la carpeta problemática en algún directorio de copia de seguridad y elimínela de su directorio de trabajo SVN. Recuerde eliminar todos los directorios ocultos .svn de la carpeta copiada.

Ahora actualice su proyecto, limpie y confirme lo que queda. Ahora mueve tu carpeta al directorio de trabajo, agrégala y confirma. La mayoría de las veces funciona esta solución, parece que básicamente SVN se confundió ...

Actualización: citando comentario de @Mark:

No tienes que mover la carpeta alrededor, sólo eliminar la carpeta .svn y luego svn-adding funcionó.

+50

No necesitó mover la carpeta, simplemente eliminó la carpeta '.svn' y luego svn-adding funcionó. – mpen

+4

+1 para hacer mi día ;-) Como dijo Mark, para mí fue suficiente para eliminar los directorios .svn dentro de la carpeta problemática. – rturrado

+20

Gracias por identificar SVN como BS completo. – nottinhill

3

¿Ha intentado realizar una limpieza svn?

+3

Ahora tengo. No funcionó – mpen

+1

He corrido demasiado en este problema. Luego probé 'svn cleanup' y no lo ayudó. – imacake

3

Busque un directorio 'aplicaciones/autocompletar/.svn'. Muévelo a un lugar seguro (en caso de que necesite restaurarlo porque esto no funcionó) y vea si eso soluciona el problema.

15

Una variante de @gauss256's answer, eliminando .svn, trabajó para mí:

rm -rf troublesome_folder/.svn 
svn add troublesome_folder 
svn commit 

Antes de solución de Gauss me trataron @jwir3's approach y tiene ninguna alegría:

svn cleanup 
svn cleanup * 
svn cleanup troublesome_folder 
svn add --force troublesome_folder 
svn commit 
+1

Esto funcionó bien – VVB

20

que tenía un problema de aspecto similar después de agregar un árbol de directorios que contenía directorios .svn (porque era un svn: externo en su entorno de origen): svn status me dijo "?", pero cuando intentaba agregarlo, ya estaba "bajo control de versión".

Dado que no hay otros directorios versionados estaban presentes, lo hice

find . -mindepth 2 -name '.svn' -exec rm -rf '{}' \; 

para eliminar los directorios .svn equivocadas; Después de hacer esto, pude agregar el nuevo directorio.

Nota:

  • Si otros directorios versionados están contenidos, al encontrar su expresión debe ser cambiado para ser más específicos
  • Si no está seguro, primero omitir la parte de "-exec ..." para ver lo que se suprimiría
+0

Si bien esta respuesta funcionó para mí, la primera vez que la usé, estaba en la carpeta incorrecta y las cosas se complicaron. Parece un buen lugar para recordar a las personas "medir dos veces, cortar una vez", es decir, verificar los detalles antes de ejecutar esta. – BishopZ

+1

Bueno, esto es lo que quise decir en la parte "Si no está seguro ..." ... – Tobias

+0

Recomiendo el 'si no estoy seguro' para ser '... -exec echo {} \;' para que pueda obtener su -exec también funciona bien. – FlipMcF

14

(1) Esto me acaba de suceder, y pensé que era interesante cómo sucedió. Básicamente, copié la carpeta a una nueva ubicación y la modifiqué, olvidando que traería todos los directorios .svn ocultos. Una vez que te das cuenta de cómo sucede, es más fácil evitarlo en el futuro.

(2) La eliminación de los directorios .svn es la solución, pero tiene que hacerlo de manera recursiva en todo el árbol de directorios. La forma más sencilla de hacerlo es:

find troublesome_folder -name .svn -exec rm -rf {} \; 
+0

saftey primero :) – FlipMcF

0

he encontrado una solución en caso de que haya instalado Eclipse (Luna) con el JavaHL SVN Client (JNI) 1.8.13 y la tortuga:

abierto Eclipse: primer lugar, pruebe a añadir el módulo de proyecto/experto al control de versiones (proyecto -> Menú contextual -> Equipo -> Lista de control de Versiones)

verá el siguiente mensaje de error Eclipse:

org.apache.subversion.javahl.ClientException: Entrada ya existe SVN: 'PathToYouProject' ya está bajo control de versiones

Después de que usted tiene que abrir el directorio de espacio de trabajo en su explorador, seleccione su proyecto y resolverlo a través de la tortuga (proyecto -> Menú contextual -> TortoiseSVN -> Resolve)

verá el siguiente cuadro de diálogo mensaje: "lista de archivos está vacía"

Presione cancelar y actualizar el proyecto en Eclipse. Su proyecto debe estar bajo control de versión nuevamente.

Desafortunadamente no es posible resolver más un proyecto al mismo tiempo ... no tiene que borrar nada, pero dependiendo del tamaño de su proyecto podría ser un poco laborioso.

Cuestiones relacionadas