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?

mpen
fuente
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ó.

Tomasz Nurkiewicz
fuente
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
Tobias
fuente
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
encimeras
fuente
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 {} \;
gauss256
fuente
3

¿Ha intentado realizar una limpieza de svn?

jwir3
fuente
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.

jerryb
fuente
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.

Chisey88
fuente
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.

Sujeet
fuente