Est-ce que quelqu'un connaît les options de ligne de commande de CVS pour obtenir les détails du dernier enregistrement?

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

Question

J'utilise CVS sous Windows (avec le système frontal WinCVS) et souhaite ajouter des détails du dernier enregistrement à l'e-mail de notre processus de génération automatisée, chaque fois qu'une génération échoue, afin de faciliter la tâche. correctif.

J'ai besoin de connaître les fichiers qui ont été modifiés, l'utilisateur qui les a modifiés et le commentaire.

J'ai essayé de définir les options de ligne de commande, mais je ne semble jamais obtenir de résultats précis (obtenez trop de résultats plutôt que juste d'un enregistrement, ou des détails de certains enregistrements aléatoires d'il y a deux semaines)

Était-ce utile?

La solution

Wow.

J'avais oublié à quel point c'était difficile à faire. Ce que j'avais fait auparavant était un processus en deux étapes.

Tout d'abord, en cours d'exécution

cvs history -c -a -D "7 days ago" |
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$.awk

pour collecter des informations sur tous les enregistrements des 7 jours précédents et pour générer un script qui serait utilisé pour créer une partie de l'e-mail envoyé.

J'ai ensuite fouillé le fichier CVS / Entries dans le répertoire qui contenait le (s) fichier (s) cassé (s) pour obtenir plus d'informations.

La fusion des deux m'a permis de désigner le coupable et de lui envoyer un courrier électronique l'informant qu'il avait brisé le dispositif.

Désolé que cette réponse ne soit pas aussi complète que je l'avais espéré.

Autres conseils

CVS ne regroupe pas les ensembles de modifications, contrairement à d'autres systèmes de contrôle de versions; chaque fichier a son propre numéro de version et son propre historique. C’est l’une des faiblesses de CVS qui pousse les gens à passer à un nouveau VC.

Cela dit, vous pouvez atteindre votre objectif de différentes manières. Le plus simple consiste peut-être à ajouter un hook post-commit pour envoyer un email ou se connecter à un fichier. Ensuite, vous pouvez au moins grouper un ensemble d’engagements en regardant le moment où les courriels sont envoyés et qui a effectué la modification.

CVS ne fournit pas cette capacité. Vous pouvez toutefois l'obtenir en achetant une licence pour FishEye ou éventuellement en utilisant CVSTrac (note: je n'ai pas essayé CVS Trac).

Vous pouvez également migrer vers SVN, qui fournit cette fonctionnalité via des commits atomiques. Vous pouvez archiver un groupe de fichiers et le compter comme un seul commit. Dans CVS, chaque fichier est un commit séparé, peu importe ce que vous faites.

Nous l’avons fait via un script Perl qui affiche le journal des modifications et vous pouvez obtenir une version gratuite de Perl pour Windows au deuxième lien.

Script Cvs2Cl

Active Perl

J'utilise loginfo dans CVSROOT et j'écris ces informations dans un fichier

http://ximbiot.com/cvs/manual /cvs-1.11.23/cvs_18.html#SEC186

Will " cvs historique -a -l " vous rapprocher? Affiche pour tous les utilisateurs le dernier événement par projet ...

CVSNT prend en charge les ID de validation que vous pouvez utiliser à la place de balises dans les commandes log, checkout ou update. Chaque ensemble de fichiers validés (les validations sont atomiques dans CVSNT) reçoit son propre identifiant unique. Vous devez simplement déterminer d’abord le numéro de validation du dernier fichier archivé via le journal cvs (vous pouvez restreindre la sortie via -d "Il ya 1 heure" ou similaire), puis rechercher les autres fichiers ayant cet ID.

Eclipse est doté de ChangeSets intégrés. Vous pouvez parcourir les dernières modifications (au moins les modifications entrantes appelées mises à jour) par validation. Pour ce faire, il regroupe les commits par auteur, les messages de validation et des horodatages similaires.

Ceci fonctionne également pour "Comparer avec / une autre branche ou version". où vous pouvez choisir des branches, des balises et des dates. Recherchez dans les icônes de la vue Synchronisation un menu contextuel contenant les "ensembles de modifications". et voyez par vous-même.

Éditer: Cela nécessiterait de passer à Eclipse au moins en tant que spectateur, mais en fonction de la fréquence à laquelle vous devez comparer et grouper, cela pourrait ne pas être trop grave. Si vous ne voulez pas en utiliser davantage, utilisez Eclipse uniquement pour CVS. Il devrait même être possible d’obtenir un client CVS de taille décente via le RCP avec tous les plugins, mais ce serait définitivement hors de portée ...

N’est-ce pas un problème résolu? Je pense que l’un des nombreux outils de la Matrice de l'IC CVS et les notifications par courrier électronique peuvent le faire pour vous.

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