Restaurer la connexion du projet Eclipse Subversion


100

J'ai un projet en subversion, que je développe avec Eclipse. J'ai effectué l'extraction d'origine à partir du référentiel svn depuis Eclipse. Tout allait bien pendant quelques semaines puis pour une raison inconnue, Eclipse (en particulier: subclipse dans Ganymède) ne reconnaît plus mon projet comme étant sous contrôle svn. Le menu contextuel de l'équipe n'affiche que les options de menu de base «appliquer le patch» / «partager ce projet». Depuis le shell, je peux toujours mettre à jour le projet en utilisant les outils de ligne de commande svn, donc je sais que les informations d'identification svn fonctionnent toujours. D'autres projets sous subversion dans la même copie d'Eclipse fonctionnent toujours.

Je me rends compte que je peux supprimer la copie locale et la vérifier à nouveau, mais je préfère comprendre ce qui ne va pas - résoudre le problème plutôt que de masquer les symptômes. Où Eclipse stocke-t-elle sa connaissance des projets sous contrôle de version? J'ai regardé le .projectfichier et le .settingsrépertoire, mais je n'ai pas vu de mention évidente de la nature svn ou de quelque chose de similaire, même dans les projets qui fonctionnent toujours correctement.

Réponses:


124

Si vous utilisez sublipse comme fournisseur SVN, je vous recommande de faire ce qui suit

Équipe -> Partager le projet est généralement suffisant pour connecter les métadonnées.

(c'est-à-dire en supposant que les fichiers .svn sont toujours là, ce qu'ils semblent être si vous pouvez travailler sur la ligne de commande).

J'espère que cela aide à expliquer pourquoi cela arriverait, je n'ai aucune idée


9
J'ai le même problème mais cette réponse ne m'aide pas. Eclipse me propose de créer un nouveau projet dans Subversion. Il n'y a aucune possibilité de reconnecter le projet.
migu

1
Façon confirmée de faire cette chose.
pestaa

1
Merci beaucoup pour cette réponse, qui m'a fait gagner beaucoup de temps. Maintenant, je peux enfin mettre à jour tout mon ensemble de travail.
Cedric Meury

1
Cela a fonctionné pour moi (avec Eclipse Indigo 64 bits et Subclipse), merci! Je voulais juste ajouter que le commentaire "en supposant que les fichiers .svn sont toujours là" n'est peut-être pas tout à fait correct. Autrement dit, j'ai été surpris de voir que, bien que mon projet soit toujours associé à mon référentiel (comme TortoiseSVN l'a confirmé), il n'y avait pas de répertoire .svn dans le répertoire du projet ! J'avais toujours pensé qu'il y avait un tel répertoire dans chaque répertoire contrôlé par SVN, mais je vois maintenant que ce n'est pas le cas. Quoi qu'il en soit, le point de l'OP était que si le répertoire est toujours en cours de configuration, cela devrait fonctionner, cela semble valide.
Rob Cranfill

1
A travaillé aussi dans Subversive ... Merci!
jaibatrik

23

J'ai trouvé un moyen simple de réimporter simplement le projet


1
Vous êtes l'homme ... :) Je n'avais que l'option "Appliquer le correctif" et cela l'a résolu ... Pourquoi n'y ai-je pas pensé :)
IncrediApp

Ouais, la réimportation semble être le plus simple :-)
user942640

Je n'avais également que l'option de menu "Appliquer le patch". La réimportation a fonctionné. Il doit y avoir un fichier de configuration quelque part qui détermine cela. Rétrospectivement, j'aurais aimé avoir sauvegardé l'espace de travail de configuration et les fichiers / dossiers du projet afin de voir ce qui a changé. Espérons que la prochaine personne qui lira cette solution le fera et partagera ce qui a changé.
Pixelstix

7

Faire simplement l'équipe -> Partager le projet (selon la réponse à cette question fournie par @Paul Whelan) n'a pas fonctionné pour moi. L'assistant de partage de projet a agi comme si le projet n'était pas déjà dans SVN (même si le dossier .svn était présent pour mon projet).

J'ai fini par résoudre le problème en désinstallant les modules complémentaires Subversive et JavaHL (via Aide | À propos d'Eclipse | Bouton Détails de l'installation | Onglet Logiciels installés | Désinstaller ...), puis en réinstallant Subversive. Lorsque je suis invité après le redémarrage d'Eclipse, j'ai choisi d'installer le connecteur SVNKit plutôt que le connecteur JavaHL.

Après avoir fait cela, quand j'ai à nouveau essayé Team -> Share Project ..., Eclipse a correctement reconnu que mon projet était déjà présent dans SVN, et il a réussi à rétablir la connexion.


Pourquoi partager un projet? share project publiera votre projet local sur le serveur svn, si vous avez quelque chose localement qui n'est pas censé aller sur la machine svn cela pourrait causer des problèmes, ce qu'il veut faire est de rétablir la connexion, ce qui n'est apparemment pas possible, solution serait une nouvelle vérification, éventuellement, installer subclipse au lieu de subversive
JBoy

4

Addendum: il s'avère que mon problème se manifeste lorsque je lance Eclipse en dehors du vpn de l'entreprise, avec un projet dans l'espace de travail qui est attaché à un référentiel svn à l'intérieur du vpn. Heureusement, le passage des plugins Eclipse svn de subversif à subclipse l'a résolu.

Ian


3

Depuis eclipse, j'ai fermé le (s) projet (s) et rouvert ce qui a résolu le problème. Les liens All by SVN sont de retour pour tous les projets de mon espace de travail.


1
J'ai essayé le projet de fermeture et de réouverture, mais cela n'a pas fonctionné pour moi.
Epu

2

J'ai eu le même problème et ce forum m'a aidé à trouver la bonne réponse.

Mon projet précédent a été configuré à l'aide de subclipse. La nouvelle éclipse avait subvesive.

L'installation de subclipse m'a aidé à récupérer les options svn sous team!

J'espère que cela aide quelqu'un d'autre.

Cordialement

Anshu Prateek


Je ne parviens pas à installer subclipse dans kepler. Toute solution?
Vivek

1

Sans savoir sur quelle plateforme vous êtes, je ne sais pas si votre problème est similaire au mien. Cependant, j'ai récemment (en fait sur deux plates-formes différentes!) J'ai eu des problèmes où une mise à jour de Subversive (ou peut-être Eclipse elle-même, pas claire) a fait que les connecteurs ne se chargent plus. Sans les connecteurs, Subversive ne peut pas se connecter à un projet. Mais Eclipse ne va pas vous exclure de votre projet pour cela, il supprimera simplement la fonctionnalité liée au SVN.

Regardez la vue Erreurs, qui est un journal des différentes erreurs d'Eclipse (exceptions de classe introuvable, etc.) et voyez s'il y a des lignes liées aux composants Subversive. Malheureusement, je ne peux pas vraiment recommander une solution - sur ma plate-forme Mac OSX, il suffisait de réinstaller les éléments de base et les connecteurs Subversive. Sur ma machine Linux (peut-être en raison d'une mise à jour du système d'exploitation), je dois réinstaller complètement Eclipse, car trop de cruauté s'est accumulée pour que je puisse l'examiner complètement.


1

Dans la version Juno avec Subversive, j'ai fait:

  • File / Import ouvre la fenêtre d'importation.
  • À partir de là, sélectionnez Projets généraux / existants dans l'espace de travail.
  • Dans le volet suivant, vous sélectionnez le répertoire racine. Ensuite, il vous montrera tous les sous-répertoires. Ils seront tous sélectionnés par défaut.
  • Désélectionnez ceux que vous ne voulez pas.

Il "importera" ensuite votre répertoire existant, qui peut être utilisé sur place, il se trouve déjà dans le répertoire de votre espace de travail.


0

Idem dans mon cas: les répertoires .svn étaient là, mais mon projet ne supportait pas les actions svn.

Après avoir poussé un peu, il s'est avéré que le plugin subversif avait tout simplement disparu après une éclipse forcée.

La solution était de (ré) installer subversive, et maintenant tout va bien à nouveau.

Cheers v.

MISE À JOUR: J'ai basculé eclipse vers une nouvelle version qui n'avait tout simplement pas le plugin installé, c'est la raison pour laquelle j'ai dû l'installer à partir de zéro.


0

Cela a fonctionné pour moi: clic droit -> TortoiseSVN -> Paramètres -> Propriétés de superposition d'icônes, sélection de Shell comme cache d'état. Cliquez sur OK, Actualiser la page.


0

Je peux reproduire ce problème de manière fiable - cela se produit lors de l'extraction de certains projets Maven en exécutant "Check out as Maven Project…" non pas sur le dossier contenant le POM lui-même mais sur un répertoire parent (tel que "trunk"). Dans ce cas, Subclipse extrait le projet sans aucune plainte, en le plaçant dans un répertoire d'espace de travail avec un nom d'espace réservé tel que maven.1424425443350. Dans ce répertoire, il crée un sous-répertoire avec le nom de l'artefact Maven. Cela confond à la fois Subclipse et Subversion: Subclipse, comme nous l'avons vu, oublie immédiatement que le projet est sous contrôle de version, et si vous appelez à svn statuspartir de la ligne de commande dans le maven.1424425443350répertoire, cela vous dira que le répertoire est sous contrôle de version mais que tous les fichiers contrôlés par version sont manquants.

Aucune des solutions de contournement présentées dans les autres réponses ne fonctionnera si c'est ce qui a amené Subsclipse à oublier sa connexion SVN. Au lieu de cela, la seule solution est de supprimer le projet et de le récupérer à nouveau, en s'assurant cette fois que l'extraction est effectuée sur un répertoire contenant un POM plutôt que sur un répertoire de niveau supérieur.

Une meilleure solution globale serait que Subclipse refuse d'exécuter "Check out as Maven Project…" sur des répertoires qui ne contiennent pas de POM, ou bien de mieux gérer les cas où il essaie de le faire de toute façon en recherchant des sous-répertoires pour les projets Maven.


0

J'utilisais deux implémentations SVNKit (1.7.x et 1.8.x) simultanément avec la version du référentiel SVN (1.8.x).

En conséquence, l' équipe -> Partager des projets ... a toujours demandé un message de validation. Évidemment, SVNKit 1.7.x a été utilisé, ce qui n'est pas compatible avec SVN 1.8.x.

Après avoir supprimé SVNKit 1.7.x eclipse a utilisé la seule version correcte de SVNKit 1.8.x disponible et tout a fonctionné comme prévu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.