Wie kann ich eine Zusammenfassung meiner cvs Konflikte bekommen, wenn auf der Kommandozeile ein cvs update zu tun?

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

Frage

Gibt es einen einfachen Weg, um einen Konflikt Zusammenfassung zu erhalten, nachdem ein cvs update läuft?

Ich arbeite an einem großen Projekt und nachdem er einige Arbeit zu tun Ich brauche ein Update zu tun. Die Liste der Änderungen zurück aus dem cvs update Befehl kommen mehrere Seiten lang ist und ich möchte nur die Liste der Konflikte sehen (beginnt mit ‚C‘) am Ende der Befehlsausgabe cvs update wiederholt.

Die Lösung muss von der Kommandozeile arbeiten.

Wenn meine normale Ausgabe lautet:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Ich mag meine neue ausgegeben werden:

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

Das mag ich ein einziger Befehl sein (möglicherweise ein kurzes Skript oder Alias), die den normalen cvs Ausgang ausgibt, wie es durch eine Zusammenfassung von Konflikten gefolgt geschieht.

War es hilfreich?

Lösung

die Spezifikation gegeben, so scheint es, dass Sie eine kleinere Anpassung von Martin York Lösung benötigen (denn das ist nur die Konflikte zeigt und nicht die normalen Protokollinformationen). So etwas wie diese - die ‚cvsupd‘ genannt werden:

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

Die Trap-Befehle sicherzustellen, dass die Protokolldatei um nicht verlassen wird. Es fängt die normalen Signale -. HUP, INT, beendigt, und PIPE TERM (jeweils) und 0 Fallen anderer Ausgang von der Shell

Andere Tipps

Ich habe cvs nicht praktisch, was das genaue Format der Ausgabe von cvs update ist

Ich scheine C erinnern
Wenn dies der Fall könnten Sie:

  

cvs update | tee log | grep "^ C"

Die vollständige Ausgabe von cvs in Protokoll für den Einsatz an anderer Stelle gespeichert. Dann grep wir für alle Linien Anfang mit 'C'

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top