2010-06-08 26 views
5

No sé exactamente cómo sucedió, pero tengo un directorio ".svn" versionado en mi repositorio. No me preguntes cómo llegó allí. Si le digo a svn que lo elimine, no quiere, ya que .svn es un argumento reservado.subversion: deshacerse del directorio versionado ".svn"

La fuerza no funciona.

¿Alguna idea?

EDIT:. Ok Lo resuelto por svn rm ing directorio padre y la adición de nuevo en

embargo, si alguien sabe la solución limpia para esto, sería muy apreciada.

ACLARACIÓN:

svn delete <repo url>/foo/.svn 

no funciona. Creo que probé todas las combinaciones simples de comandos y argumentos. Estoy bastante seguro, que si eso es factible, es un truco. Conozco el método: volcar -> modificar volcado con herramienta -> reimportar pero eso es tan aterrador como el infierno. Esto no es git, si golpeas un svn repo, te queda golpeado.

+2

"No me preguntes cómo llegó allí". Bueno, 'svn log' te lo diría. – sbi

+0

Esa es una buena idea. 'svn log -v' me dice que se ha agregado. No hay mucho más que extraer de eso. Debe haber hecho un 'svn add' en su directorio principal. Sin embargo, todavía es extraño, porque svn add generalmente destruye o se queja de los directorios .svn existentes. – AndreasT

+1

aquí, 'svn log' también dice quién lo agregó, cuándo y qué más se hizo en la misma confirmación. Esto generalmente es suficiente para entender quién hizo qué. ':)' – sbi

Respuesta

2

"rm SVN" con una URL parece funcionar bien, yo sólo probé (usando SVN 1.6.5, Mac OS X):

$ svn ls -R file:///xxx/testrepo 
foo/ 
foo/.svn/ 
foo/.svn/baz 
foo/bar/ 
foo/bar/baz 

$ svn rm -m 'Yes it works.' file:///xxx/testrepo/foo/.svn 
Committed revision 6. 

$ svn ls -R file:///xxx/testrepo 
foo/ 
foo/bar/ 
foo/bar/baz 

También puede utilizar "svn mv", sin necesidad para eliminar cualquier cosa:

$ svn ls -R file:///xxx/testrepo 
foo/ 
foo/.svn/ 
foo/.svn/baz 
foo/bar/ 
foo/bar/baz 

$ svn mv -m 'Rename works too.' file:///xxx/testrepo/foo/.svn \ 
    file:///xxx/testrepo/foo/dotsvn 
Committed revision 8. 

$ svn ls -R file:///xxx/testrepo 
foo/ 
foo/bar/ 
foo/bar/baz 
foo/dotsvn/ 
foo/dotsvn/baz 

PS. Crear directorios ".svn" en repositorios svn es fácil: simplemente use svn cp o svn mv con URLs.

0

Sólo svn delete desde el repositorio directamente, por ejemplo,

svn rm -m "removing checked-in .svn" http://myserver/svn/repo/trunk/dir/.svn

continuación, elimine la copia local y svn update para recuperar la versión corregida.

+0

Esto no funciona, ya que svn delete tampoco acepta .svn como parámetro. Esto es lo que quise decir con "Si digo svn para eliminarlo ..." en el texto de mi pregunta. – AndreasT

Cuestiones relacionadas