Comment puis-je obtenir un résumé de mes conflits CVS lors de la mise à jour de CVS sur la ligne de commande?

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

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.

Était-ce utile?

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.

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