Déplacez commodément une classe vers un autre package dans eclipse sans passer à travers svn

StackOverflow https://stackoverflow.com/questions/420013

  •  05-07-2019
  •  | 
  •  

Question

Lorsque vous déplacez un fichier de old.package vers new.package , je souhaite que deux événements se produisent:

  1. Mettez à jour toutes les références à cette classe (dans tous les fichiers du projet) afin que le nouveau package soit utilisé
  2. svn déplace l'ancien / package / Foo.java nouveau / package / Foo.java

J'utilise subversif au sein d'Eclipse Ganymede. Lorsque je déplace simplement le fichier d'un paquet à l'autre, toutes les références sont mises à jour et le fichier est déplacé sur le système de fichiers. Mais SVN n’en a pas conscience et donc la commande svn move ancien / package / foo.java nouveau / package / Foo.java ne fonctionne pas (évidemment) lorsque ancien / package / Foo.java n'existe pas (car eclipse l'a déjà déplacé).

Existe-t-il un moyen de demander à eclipse de procéder à un refactoring, mais en utilisant svn pour déplacer le fichier sur le système de fichiers? J'espère que je manque juste quelque chose d'évident: -)

Était-ce utile?

La solution

J'utilise Subclipse et il prend en charge le transfert de fichiers entre les packages

Autres conseils

Je fais des expériences et pense avoir trouvé le moyen:

1) Tortoise-déplacez le fichier en utilisant le menu contextuel par clic droit (ou la méthode SVN de votre choix).

2) Utilisez le système de fichiers Windows pour le déplacer.

3) Faites glisser le fichier dans Eclipse pour mettre à jour toutes les références.

4) Commit - il s’agit d’une suppression / ajout, mais il enregistre l’historique et modifie les références du paquet en un commit (en gardant chaque build constructible).

Vieille question, mais j'y reviens sans cesse, voici donc ma documentation!

Yuval a raison. Cela ressemble à une déficience (très malheureuse!) De Subversive. (n'ayant aucune expérience de Subversive, je ne peux pas le dire avec certitude). Subclipse gère définitivement cela correctement en se connectant aux bonnes API dans Eclipse.

Vous ne pouvez pas faire les deux en même temps car déplacer les fichiers ne suffit pas. Les fichiers doivent être modifiés pour que votre code soit à nouveau compilable. Alors refactorisez avec Eclipse et laissez Subclipse faire son travail (supprimer les anciens fichiers, ajouter de nouveaux fichiers) après le déplacement.

Si vous laissez Eclipse effectuer le refactoring, il va sûrement modifier les fichiers que SVN doit récupérer lorsque vous validez le répertoire racine. Cependant, je ne pense pas qu'un déménagement suffira, SVN devra constater que le fichier est manquant dans son répertoire d'origine mais le rajouter à partir du nouveau répertoire. C'est une situation délicate, je ne saurais pas quelle est la meilleure méthode, je ferais simplement le refactoring, puis je commettrais la racine personnellement, même si ce ne serait pas un geste.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top