Forum Programmation.autre Question de developpeur à propos de cvs.

Posté par  .
Étiquettes : aucune
0
7
jan.
2005
Voilà, mon cher forum, ce qui devait arriver arriva : je ne suis plus le seul a développer. J'ai donc dû mettre en place une solution de travail partagé, et mon attention s'est tout naturellement tournée vers cvs. Il est installé et fonctionne à merveille. Même en distant sans utiliser les tcpwrappers : ssh est mon ami !
Bref, c'est pas trop ça mon problème. Ca concerne plutôt la gestion de projet.
Dans mon répertoire de travail, je récupère mon projet :
$ cvs co projet

Il mouline et me récupère tous les fichiers du projet. C'est parfait.
Puis, alors que je suis dans le répertoire de mon projet, je m'apperçois que j'ai besoin d'un sous-répertoire. Qu'à cela ne tienne :

$ cd projet && mkdir dir && cvs add dir && cvs commit

Ca fonctionne du feu de dieu, et j'en suis ravi ! Le problème, c'est quand je me dis "Quel crétin, j'ai pas besoin de dir"...

Bon, ben là, si je fais comme la doc l'indique, à savoir :
$ cd projet && rm -r dir && cvs remove dir
La commande cvs échoue en me disant qu'elle ne peut pas se placer dans le répertoire dir. Si j'inverse la commande rm et la commande cvs remove, ça passe, ça me dit bien que le répertoire est supprimé (enfin, faut faire un commit, ce que je m'empresse de faire), mais lorsque je fais un cvs co projet, hop, je récupère ce vieux dossier tout pourri dont je n'ai pas besoin.
Stp, cher forum, dis moi comment faire, je ne sais vraiment plus quoi essayer.
J'ai essayé avec un répertoire vide et/ou plein, sans succès. Et la doc n'est finalement pas très explicite sur ce point.
Par avance, merci pour vos conseils.
  • # Pas réveillé, moi, ce matin !

    Posté par  . Évalué à 2.

    J'avais pas vu : c'est pas expliqué dans les pages de man, mais ça l'est dans les pages info fournies avec cvs :
    on ne peut pas.
    Pour que le répertoire ne soit pas récupéré lors d'un cvs co, il faut :
    1) effacer le contenu du répertoire avant le commit,
    2) faire le commit, puis
    3) préciser l'option -P à cvs co, ce qui l'empêche de récupérer les répertoires vides.

    Soit. Petite question, tout de même :
    Est-ce que la solution d'aller dans $CVSROOT/projet et de là d'effacer dir est une solution de porc, oui ou non ? Ca règle le problème une fois pour toutes, puisque je co-ordonne plus ou moins le projet, et par conséquent peux lancer ce genre de commande, mais d'un autre côté, je ne voudrais pas que ça mette la pannade dans mon serveur cvs.
    Par avance merci une fois de plus pour votre patience et vos conseils !
    • [^] # Re: Pas réveillé, moi, ce matin !

      Posté par  (site web personnel) . Évalué à 2.

      S'il n'a jamais dans tes intentions de te servir de se repertoire, et bien saches que bien que ce soit porc, c'est la seule facon de proceder :-)

      Donc effaces le repertoire sur le repository. Mais soit bien sûr qu'aucune version des fichiers du projet ne depende de ce repertoire, sinon effacer le rep sur le serveur revient a casser la continuité de l'historique du projet.
      • [^] # Re: Pas réveillé, moi, ce matin !

        Posté par  . Évalué à 1.

        Merci, c'est bien ce que je craignais, mais je préférais en avoir la confirmation.
        Y'a quand même des trucs que je trouve bizarre... Après tout, c'est pas si dur de créer un répertoire, je ne comprend pas pourquoi cvs ne sauvegarde pas dans l'historique le chemin de chaque fichier du projet, en relatif à partir de la racine du projet lui même.
        Et puis tant qu'on y est, pourquoi conserve-t-il le répertoire absolu du repository ? C'est inutile, ou alors la portée d'une telle information m'échappe.
        Je me suis apperçu de ça en changeant mon repository de place.... Il m'a fallu changer le contenu de chaque fichier Root de chaque projet. Rien d'insurmontable non plus, c'est juste que je ne comprend pas !
        Enfin, la critique que je fais n'est pas ni hautaine, ni gratuite, ni moqueuse : c'est simplement que comme je découvre ce logiciel, il y a des éléments que j'aimerais voir fonctionner de telle ou telle manière (mais peut-être que je me pose de mauvaises questions), et je ne trouve pas ce que je cherche, ou alors je trouve un truc qui m'apporte un bout de réponse avec des contraintes et qui ouvre de nouvelles perspectives et de nouveaux besoins ! Je me suis peut-être trompé d'outil ?
        J'en doute quand même, puisqu'il est quand même largement utilisé par la communauté pour le travail collaboratif. Je ne pense pas qu'à trois nous en fassions le tour au point d'en exploser les limites quand même !
        • [^] # Re: Pas réveillé, moi, ce matin !

          Posté par  (site web personnel) . Évalué à 2.

          Tout ceci est dû au fait que CVS est basé sur RCS, un très vieux vieux vieux logiciel de versionning, avec toutes les limitations qui vont avec.

          Si tu veux pouvoir versionner repertoires, droits sur fichiers et tracer des deplacements de fichiers, je te conseille de regarder du coté de gnuarch, ou bien de subversion, et encore d'autres logiciels qui tentent d'aller plus loin que CVS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.