web-dev-qa-db-fra.com

SVN: Le dossier est-il déjà sous contrôle de version mais ne s’est pas engagé?

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. Quand je fais un svn ci, il ne se commet pas et ne s'affiche pas lorsque j'essaie de naviguer dans le référentiel en ligne.

Comment puis-je le faire s'engager?

110
mpen

Copiez le dossier problématique dans un répertoire de sauvegarde et supprimez-le de votre répertoire de travail SVN. N'oubliez pas de supprimer tous les .svn répertoires cachés du dossier copié.

Maintenant, mettez à jour votre projet, nettoyez et engagez ce qui reste. Maintenant, déplacez votre dossier dans le répertoire de travail, ajoutez-le et validez. La plupart du temps, cette solution de contournement fonctionne: il semble que SVN soit confus ...

Mise à jour: citant le commentaire de @ Mark :

Vous n'avez pas besoin de déplacer le dossier, il suffit de supprimer le .svn dossier puis svn-ajoutant cela a fonctionné.

160
Tomasz Nurkiewicz

J'ai eu un problème similaire après avoir ajouté une arborescence de répertoires contenant des répertoires .svn (car il s'agissait d'un svn: external dans son environnement source): svn status m'a dit "?", Mais en essayant de l'ajouter, c'était "déjà sous contrôle de version ".

Puisqu'aucun autre répertoire versionné n'était présent, j'ai

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

supprimer les mauvais répertoires .svn; Après cela, j'ai pu ajouter le nouveau répertoire.

Note:

  • Si d'autres répertoires versionnés sont contenus, l'expression de recherche doit être modifiée pour être plus spécifique
  • En cas de doute, commencez par omettre la partie "-exec ..." pour voir ce qui serait supprimé.
20
Tobias

Une variante de réponse de @ gauss256 , en supprimant .svn, a travaillé pour moi:

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

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

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

(1) Cela m'est juste arrivé et je pensais que c'était intéressant comment c'est arrivé. En gros, j'avais copié le dossier dans un nouvel emplacement et je l'avais modifié, en oubliant qu'il apporterait 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 consiste à 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 {} \;
14
gauss256

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

3
jwir3

Recherchez un répertoire "apps/autocomplete/.svn". Déplacez-le dans un endroit sûr (au cas où vous auriez besoin de le restaurer car cela ne fonctionnait pas) et voyez si cela résout le problème.

3
jerryb

J'ai trouvé une solution au cas où vous auriez installé Eclipse (Luna) avec le client SVN JavaHL (JNI) 1.8.13 et Tortoise :

Ouvrez Eclipse: essayez d’abord d’ajouter le module project/maven au contrôle de version (Projet -> Menu contextuel -> Équipe -> Ajouter au contrôle de version)

Vous verrez le message d'erreur Eclipse suivant:

org.Apache.Subversion.javahl.ClientException: L'entrée existe déjà svn: 'PathToYouProject' est déjà sous contrôle de version

Après cela, vous devez ouvrir votre répertoire d’espace de travail dans votre explorateur, sélectionner votre projet et le résoudre avec Tortoise (Projet -> Menu contextuel -> TortoiseSVN -> Résoudre)

Vous verrez le message suivant: " La liste de fichiers est vide "

Appuyez sur Annuler et actualisez le projet dans Eclipse. Votre projet doit être à nouveau sous contrôle de version.

Malheureusement, il n'est pas possible de résoudre plus d'un projet à la fois ... vous ne devez rien supprimer, mais cela peut être un peu laborieux en fonction de la taille de votre projet.

0
Chisey88