CVS: Liste de tous les fichiers modifiés entre les balises (ou les dates)
-
02-07-2019 - |
Question
Est-il possible de répertorier tous les fichiers ayant changé entre deux balises dans CVS?
Chaque fois que nous publions une version, nous appliquons une balise à tous les fichiers de cette version. Je veux trouver tous les fichiers qui ont changé entre les versions.
Cela fonctionnerait également si je pouvais trouver tous les fichiers qui avaient changé entre deux dates.
La solution
Je suppose que cette commande aiderait:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
où RELEASE_1_0
et RELEASE_1_1
sont les noms de vos tags.
Vous pouvez trouver un peu plus d’informations sur la commande cvs diff ici
De plus, il devrait être assez simple de créer un script pour rendre le rapport plus adapté à vos besoins, par exemple: nombre de fichiers modifiés, créés supprimés, etc. Pour autant que je sache, les outils d'interface graphique cvs les plus courants (wincvs et tortoise) le sont ne pas fournir quelque chose comme ceci hors de la boîte.
J'espère que cela vous aidera ;)
Autres conseils
Je préfère utiliser rdiff
et -s
option
cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs
rdiff
ne nécessite pas de sandbox; -s
vous récapitule les modifications.
Pour obtenir la liste des fichiers entre deux dates à l'aide de CVS:
cvs diff -N -c -D YYYY-MM-DD -D YYYY-MM-DD | grep "Index:" > diff.out
Plus d'informations sur les dates acceptées pour le drapeau -D: http: / /docs.freebsd.org/info/cvs/cvs.info.Common_options.html
Pour obtenir une liste des fichiers modifiés d’une version à l’autre à l’aide des commandes cvs standard:
cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
Ou bien, pour obtenir une liste des commentaires de validation, supprimez simplement le -R
:
cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
Où vous remplacez V-1-0-69
et V-1-0-70
par les révisions que vous comparez.
cvs log -d ">=DATE" -N -S -R > cvs.log
La méthode de DLira donne beaucoup de détails, y compris tous les changements.
Pour obtenir simplement une liste de fichiers, ceci fonctionne:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
Le meilleur outil que j'ai trouvé pour cela est un script Perl appelé cvs2cl.pl . Cela peut générer une liste de modifications dans plusieurs formats différents. Il a beaucoup d'options différentes, mais j'ai utilisé les options tag-to-tag comme ceci:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
ou
cvs2cl.pl --delta dev_release_1_2_3:HEAD
J'ai également effectué des comparaisons à l'aide de dates avec le même outil.