Meilleures pratiques pour utiliser git avec CVS

Quelles sont vos meilleures pratiques et astuces pour utiliser git pour interfacer avec un référentiel CVS?

    J’ai écrit une réponse à une question similaire ici .

    Cela fonctionne étonnamment bien lorsque vous êtes obligé de continuer à pousser les changements dans un référentiel central CVS.

    J’ai seulement travaillé avec les interactions Git-CVS pour démo Git pour un ami, mais c’était très simple.

    • Vous devez installer une copie actuelle de cvsps . Git cvsimport utilise pour accéder à l’historique CVS.
    • Nous avons constaté que, pour un grand projet, la configuration initiale était beaucoup plus rapide en prenant une copie complète du git cvsimport CVS sur votre ordinateur et en faisant localement le git cvsimport :

       $ rsync rsync://yourprojecthost.com/cvsroot/yourproject/* $ mkdir myproject.git $ cd myproject.git $ git cvsimport -p -x -v -d :local:/path/to/cvsroot/yourproject 

    Notez que -x après -p est très important. Cela passe -x à cvsps. Pour plus d’informations, consultez la page de manuel cvsps .

    J’ai écrit les détails de mon propre workflow pour CVS distant, Git local

    Légèrement méta-réponse. Si vous êtes obligé d’utiliser git ‘style de guérilla’, c.-à-d. Que votre entreprise utilise les cvs pour le contrôle de version et que vous utilisez git sur votre poste de travail pour vous simplifier la vie,

     CVS=realCvsPath # commit to the git first if ($ARGV[0] && $ARGV[0] eq "commit") { system 'git commit -a'; } # execute the appropriate cvs program # =================================== exec "$CVS", @ARGV 

    Appelant ce fichier ‘cvs’ et en l’incluant le chemin avant la commande CVS réelle. Sinon, vous pouvez avoir git plus vieux que les cvs, ce qui n’est pas très utile …

    Si le stream amont est à 100% dans CVS (par exemple, OpenBSD, ou plusieurs de ses sous-projets comme mdocml ou ports-readmes ), et surtout si l’arborescence CVS d’OpenBSD est aussi rouillée Il est très utile de simplement envoyer les fichiers CVS/{Ensortinges,Repository,Root} sous-jacents directement dans mon repository git .

    Il est donc très facile de ne pas avoir plusieurs espaces de travail indépendants, de valider avec git sur n’importe quelle machine, puis de cvs up en place cvs diff ou cvs diff pour générer des correctifs CVS corrects pour le publipostage en amont.