111 votes

SVN: Le dossier est-il déjà sous contrôle de version mais vous ne le créez pas?

 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 stat dit que ce n'est pas sous contrôle de version, alors j'essaie de l'ajouter, puis il me dit que oui. Lorsque je fais un svn ci , il n'est pas validé et ne s'affiche pas lorsque j'essaie de naviguer dans le référentiel en ligne.

Comment puis-je le faire s'engager?

163voto

Tomasz Nurkiewicz Points 140462

Copie problématique dossier dans certaines répertoire de sauvegarde et de le supprimer de votre SVN répertoire de travail. N'oubliez pas de supprimer tous .svn les répertoires cachés à partir du dossier copié.

Maintenant mettre à jour votre projet, de nettoyage et de commettre ce qu'a gauche. Maintenant, déplacez votre dossier retour au répertoire de travail, l'ajouter et valider. La plupart du temps, cette solution fonctionne, il semble que, fondamentalement, SVN suis confus...

Mise à jour: citant le commentaire de @Marc:

N'a pas besoin de déplacer le dossier autour, tout simplement en supprimant l' .svn dossier, puis svn-ajouter travaillé.

20voto

Tobias Points 558

J'ai eu des problème après l'ajout d'une arborescence de répertoire qui contenait .svn répertoires (parce que c'était un svn:externe dans son environnement d'origine): svn status m'a dit "?", mais lorsque j'essaie de l'ajouter, qu'il était "déjà sous contrôle de version".

Depuis pas d'autres répertoires versionnés étaient présents, je n'ai

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

pour supprimer le mal .svn répertoires; après cela, j'ai pu ajouter le nouveau répertoire.

Note:

  • Si d'autres répertoires versionnés sont contenues, l'expression doit être modifié pour être plus précis
  • En cas de doute, d'abord omettre le "-exec ..." pour voir ce qui pourrait être supprimé

15voto

hobs Points 3020

Quelque chose comme la suppression .svn de @ gauss256 a fonctionné pour moi:

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

Avant la solution de Gauss, j'ai essayé l'approche de @ jwir3 et je n'ai eu aucune joie:

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

14voto

gauss256 Points 371

(1) Cela m'est juste arrivé et je pensais que c'était intéressant comment cela s'était passé. En gros, j'avais copié le dossier dans un nouvel emplacement et l'avait modifié, en oubliant qu'il entraînerait tous les répertoires cachés .svn. Une fois que vous réalisez comment cela se produit, il est plus facile d'éviter à l'avenir.

(2) La solution est de supprimer les répertoires .svn, mais vous devez le faire de manière récursive jusqu'au bout de l'arborescence. Le moyen le plus simple de le faire est:

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

3voto

jwir3 Points 1384

Avez-vous essayé d'effectuer un nettoyage svn?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X