2010-06-08 5 views
5

Je ne sais pas exactement comment c'est arrivé, mais j'ai un répertoire ".svn" versionné dans mon dépôt. Ne me demandez pas comment ça s'est passé. Si je dis à svn de le supprimer, il ne le souhaite pas, car .svn est un argument réservé.subversion: se débarrasser du répertoire ".svn" versionné

La force ne fonctionne pas.

Des idées?

EDIT:. Ok je l'ai résolu par le répertoire svn rm ing parent et en ajoutant le dans

encore, si quelqu'un connaît la solution propre à cela, il serait très apprécié.

CLARIFICATION:

svn delete <repo url>/foo/.svn 

ne fonctionne pas. Je pense que j'ai essayé chaque combinaison simple de commandes et d'arguments. Je suis assez sûr, que si c'est faisable, c'est un hack. Je connais la méthode: dump -> modifier la sauvegarde avec l'outil -> réimporter mais c'est aussi effrayant que l'enfer. Ce n'est pas git, si vous frappez un svn repo, vous reste bloqué.

+2

"Ne me demandez pas comment cela est arrivé." Eh bien, 'svn log' vous le dirait. – sbi

+0

C'est une bonne idée. 'svn log -v' m'indique qu'il a été ajouté. Pas beaucoup plus à en tirer. Doit avoir fait un 'svn add' sur son répertoire parent. C'est quand même étrange, car svn add détruit ou se plaint généralement des répertoires .svn existants. – AndreasT

+1

ici, 'svn log' dit aussi qui l'a ajouté, quand, et quoi d'autre a été fait dans le même commit. C'est généralement suffisant pour comprendre qui a fait quoi. ':)' – sbi

Répondre

2

"svn rm" avec une URL semble fonctionner très bien, je ne l'ai essayé (en utilisant 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 

Vous pouvez également utiliser "svn mv", pas besoin pour supprimer quoi que ce soit:

$ 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. La création de répertoires ".svn" dans les dépôts svn est simple: il suffit d'utiliser svn cp ou svn mv avec des URL.

0

Juste svn delete du référentiel directement, par exemple,

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

puis supprimez votre copie locale et svn update pour récupérer la version corrigée.

+0

Cela ne fonctionne pas car svn delete n'accepte pas non plus .svn en tant que paramètre. C'est ce que je voulais dire par "Si je dis à svn de le supprimer ..." dans le texte de ma question. – AndreasT

Questions connexes