SVN: ¿La carpeta ya está bajo control de versiones pero no se está compilando?


111
mark@mark-ubuntu:~/myproject$ svn stat
?       runserver.sh
?       media/images/icons
?       apps/autocomplete
mark@mark-ubuntu:~/myproject$ svn add apps/autocomplete
svn: warning: 'apps/autocomplete' is already under version control

svn statdice que no está bajo control de versiones, así que trato de agregarlo y luego me dice que sí. Cuando hago una svn ci, no se confirma y no aparece cuando intento buscar el repositorio en línea.

¿Cómo consigo que se comprometa?


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

1
¿Has probado una limpieza de: svn, solo una puñalada en la oscuridad?
shaunhusain

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

Me enérgicamente añadido los archivos: svn add --force /path/to/file, o si desea agregar el directorio de forma recursiva: svn add --depth infinity --force /path/to/directory.
joker

Respuestas:


162

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

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

Actualización: citando un comentario de @Mark :

No fue necesario mover la carpeta, solo eliminar la .svncarpeta y luego svn-agregarla funcionó.


52
No fue necesario mover la carpeta, solo eliminar la .svncarpeta y luego svn-agregarla funcionó.
mpen

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

23
Gracias por identificar a SVN como BS total.
Steve K

1
ahora que solo tiene .svn en la carpeta superior, no puede hacer esto BS, si los metadatos están corruptos, está tostado
Kalpesh Soni

desmarque la carpeta principal (aplicaciones / autocompletar) de la lista si ya está comprometida
khaled_webdev

20

Tuve 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): el estado de svn me dijo "?", Pero al intentar agregarlo, ya estaba bajo control de versiones ".

Como no había otros directorios versionados, lo hice

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

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

Nota :

  • Si hay otros directorios versionados, la expresión de búsqueda debe cambiarse para que sea más específica
  • Si no está seguro, primero omita la parte "-exec ..." para ver qué se eliminaría

Si bien esta respuesta funcionó para mí, la primera vez que la usé, estaba en la carpeta incorrecta y metí las cosas en un gran lío. Parece un buen lugar para recordarle a la gente que "mida dos veces, corte una vez", es decir, vuelva a comprobar los detalles antes de ejecutar este.
BishopZ

Recomiendo el 'si no está seguro' para ... -exec echo {} \;que pueda hacer que su -exec funcione bien también.
FlipMcF

también recomiendo agregar un -type dal hallazgo. Llámame quisquilloso hasta que vayas rm -rfun poco demasiado lejos. Aparte de mis quisquillosos, creo que esta es la respuesta correcta.
FlipMcF

15

Una variación de la respuesta de @ gauss256 , eliminar .svn, funcionó para mí:

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

Antes de la solución de Gauss, probé el enfoque de @ jwir3 y no obtuve ninguna alegría:

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

14

(1) Esto me acaba de pasar, y pensé que era interesante cómo sucedió. Básicamente, había copiado la carpeta en una nueva ubicación y la había modificado, olvidándome de 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) Eliminar los directorios .svn es la solución, pero debe hacerlo de forma recursiva hasta el final del árbol de directorios. La forma más sencilla de hacerlo es:

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

3

¿Ha intentado realizar una limpieza de svn?


2
También me he encontrado con este problema. Luego lo intenté svn cleanupy no lo ayudó.
imacake

3

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


0

Encontré una solución en caso de que haya instalado Eclipse (Luna) con el cliente SVN JavaHL (JNI) 1.8.13 y Tortoise :

Abra Eclipse: primero intente agregar el módulo proyecto / maven al Control de versiones (Proyecto -> Menú contextual -> Equipo -> Agregar al control de versiones)

Verá el siguiente mensaje de error de Eclipse:

org.apache.subversion.javahl.ClientException: La entrada ya existe svn: 'PathToYouProject' ya está bajo control de versiones

Después de eso, debe abrir el directorio de su espacio de trabajo en su explorador, seleccionar su proyecto y resolverlo a través de Tortoise (Proyecto -> Menú contextual -> TortoiseSVN -> Resolver)

Verá el siguiente diálogo de mensaje: " La lista de archivos está vacía "

Presione cancelar y actualice el proyecto en Eclipse. Su proyecto debería estar bajo control de versiones nuevamente.

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


0

Para mí, hacer una actualización de svn, seguida de svn commit funcionó. No había carpetas .svn presentes en la carpeta que no se pudo agregar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.