Comment puis-je obtenir un résumé de mes conflits CVS lors de la mise à jour de CVS sur la ligne de commande?
-
02-07-2019 - |
Question
Existe-t-il un moyen facile d’obtenir un résumé du conflit après avoir exécuté un cvs update
?
Je travaille sur un projet volumineux et, après quelques travaux, je dois faire une mise à jour. La liste des modifications renvoyées par la commande cvs update comporte plusieurs pages et j'aimerais uniquement voir la liste des conflits (commençant par 'C') répétée à la fin du résultat de la commande cvs update.
La solution doit fonctionner à partir de la ligne de commande.
Si ma sortie normale est:
M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt
Je veux que ma nouvelle sortie soit:
M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt
Conflict Summary:
C src/file3.txt
Je veux que ce soit une seule commande (éventuellement un court script ou un alias) qui affiche la sortie normale de cvs au fur et à mesure suivie d'un résumé des conflits.
La solution
Compte tenu de la spécification, il semble que vous ayez besoin d'une adaptation mineure de la solution de Martin York (car elle ne montre que les conflits et non les informations de journal normales). Quelque chose comme ça - qui pourrait s'appeler 'cvsupd':
tmp=${TMPDIR:-/tmp}/cvsupd.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
cvs update "$@" | tee $tmp
if grep -s '^C' $tmp
then
echo
echo Conflict Summary:
grep '^C' $tmp
fi
rm -f $tmp
trap 0
exit 0
Les commandes d'interruption s'assurent que le fichier journal n'est pas laissé. Il capture les signaux normaux - HUP, INT, QUIT, PIPE et TERM (respectivement) et 0 intercepte toute autre sortie du shell.
Autres conseils
Je ne dispose pas de CVS quel est le format exact de la sortie de la mise à jour de CVS
Je semble me souvenir de C < nomfichier >
Si oui, vous pouvez utiliser:
cvs update | fiche de départ | grep " ^ C "
La sortie complète de cvs est enregistrée dans le journal pour une utilisation ultérieure. Ensuite, nous grepons toutes les lignes commençant par "C"
L’espoir que cela aide.