2010-11-10 6 views
4

Je cherche un moyen de convaincre Eclipse qu'un répertoire a bien été supprimé du dépôt CVS, de façon permanente?Obtenir eclipse CVS pour oublier le répertoire supprimé

Avec la ligne de commande CVS régulière, je modifierais simplement CVS/Entries dans l'ancien parent du répertoire. Avec Eclipse, j'ai essayé de supprimer le répertoire de la vue Explorateur de projet, en supprimant la ligne appropriée dans CVS/Entrées, en recréant le répertoire dans PE afin qu'il puisse être supprimé en mise à jour ou synchronisation, synchroniser sans recréer le répertoire, et probablement des choses que j'ai oubliées depuis, et rien n'a fonctionné.

Le répertoire a été entièrement supprimé du référentiel CVS, donc je ne parle pas ici de l'élagage des répertoires vides ici. L'erreur que je vois est:

The server reported an error while performing the "cvs update" command. 
    Project: cvs update: cannot open directory /usr/local/cvsroot/one/two/three/removed_directory: No such file or directory 

Mon projet contient tout le contenu de/usr/local/cvsroot/une/deux. Je ne reçois pas cette erreur quand je navigue à "trois" et mise à jour à partir de là. Je l'obtiens seulement quand je mets à jour depuis la racine du projet.

Répondre

1

Je me suis battu la même chose pendant plusieurs heures à plusieurs reprises. Je viens de céder et re-vérifié le projet. Cela a semblé fonctionner comme un charme

+1

Je suis attristé que ce soit la seule solution "correcte". Merci. –

0

La gestion des répertoires dans CVS n'est pas parfaite. Ceci et beaucoup d'autres raisons provoquées dans la création de l'outil SCM plus complet subversion. CVS peut créer un répertoire, mais ne peut pas le supprimer.

Du point de vue CVS, pour supprimer le répertoire, vous devez supprimer (cvs rm) tous les fichiers dans le répertoire. Mais le répertoire est toujours présent dans CVS et il n'y a aucun moyen de le supprimer. Hovewer, CVS propose un "hack" pour cacher ces répertoires "supprimés"/vides en exécutant "cvs up -P" (voir here). Donc, pour la ligne de commande CVS, je ne voudrais pas jouer avec le fichier CVS/Entries du répertoire parent, mais plutôt utiliser "cvs up -P" décrit plus haut.

+0

Je suis à la recherche d'un moyen de résoudre le problème dans Eclipse. Les répertoires sont déjà partis du repo, j'ai juste besoin d'Eclipse pour apprendre ce fait. –

+0

Avez-vous supprimé le répertoire manuellement du référentiel CVS? Si oui, que blâmer soi-même :) – dimba

0

Le répertoire sera répertorié dans le fichier CVS/Entries sous le répertoire parent. Supprimez l'entrée dans le fichier Entres et le répertoire. Eclipse devrait reconnaître que le répertoire a été supprimé. La refactorisation des répertoires dans CVS est problématique. En raison de la façon dont CVS gère l'historique, l'un des éléments suivants s'applique généralement:

  • L'historique des fichiers déplacés vers de nouveaux emplacements semble disparaître. (Il se trouve dans l'historique de l'ancien emplacement.)
  • L'historique des fichiers est conservé, mais les fichiers apparaissent déplacés lors de la vérification des versions antérieures au déplacement. (Les fichiers ont été déplacés dans le référentiel plutôt que dans un bac à sable.)

La suppression ou le déplacement de répertoires dans le référentiel crée généralement des problèmes pour les clients. Il permet de conserver les répertoires et de déplacer ou supprimer des fichiers uniquement. Le traitement normal déplace les fichiers supprimés vers un sous-répertoire Attic.

0

Dans la perspective de synchronisation Eclipse CVS, avez-vous essayé l'option 'Remplacer et mettre à jour'?

+0

Ouais. Je tape override et mise à jour pour l'ensemble du répertoire. Pas de joie. –

2

Une solution (assez imparfaite) pour ce problème est, outre de vérifier à nouveau le projet, de supprimer les informations CVS stockées par Eclipse.

Allez dans le menu de droite sous le projet> Team> Disconnect, et vérifiez le bouton radio "Supprimer également les méta-informations CVS du système de fichiers".Votre projet n'est plus partagé et n'a plus d'informations CVS. Ensuite, vous n'avez plus qu'à faire Team> Partager le projet, sélectionnez l'emplacement du dépôt précédent, et vous avez terminé (CVS détectera par lui-même que le projet est à jour et ne mettra pas à jour et ne commettra rien, bien sûr).

remove cvs metadata

Un dossier qui a été supprimé dans le référentiel cvs à la main ne sera pas alors proposé plus par CVS sous Eclipse à Commited.

Attention, sur un gros projet avec beaucoup de fichiers, en fonction de la vitesse de votre réseau, le partage de données peut prendre du temps. Il peut parfois être plus facile de supprimer le projet et de le retirer de CVS.

+0

Malheureusement, mon projet est apparemment si grand qu'Eclipse ne peut pas vraiment gérer cela correctement. Je vais devoir faire le delete-re-pull. Merci quand même. –

+0

Cela a fonctionné pour moi. –

Questions connexes