Frage

Ich bin mit CVS unter Windows (mit dem WinCVS Frontend) und möchte Details der letzten Prüfung hinzuzufügen, in der E-Mail von unserem automatisierten Build-Prozess, wann immer ein Build, um fehlschlägt, um es einfacher zu beheben.

Ich brauche die Dateien zu wissen, die sich geändert haben, den Benutzer, dass sie, und den Kommentar geändert.

Ich habe versucht, die Befehlszeilenoptionen zu erarbeiten, scheine aber nie genaue Ergebnisse (entweder viel Ergebnis erhalten zu, anstatt nur von einem checkin oder Details von einigen zufälligen Check-in von vor zwei Wochen) zu erhalten

War es hilfreich?

Lösung

Wow.

Ich habe vergessen, wie schwer dies zu tun ist. Was ich vorher getan hatte, war ein zweistufiger Prozess.

Zum einen läuft

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

Informationen über alle checkins in den vorangegangenen 7 Tagen zu sammeln und ein Skript zu erzeugen, die verwendet werden würden, einen Teil der E-Mail zu erstellen, die gesendet wurde.

ich surften dann die CVS / Entries-Datei in dem Verzeichnis, das die defekte Datei (en) enthielt, um mehr Informationen zu erhalten.

Mungeing die beiden zusammen mir erlaubt, den Täter fingern und eine E-Mail an sie benachrichtigen sie senden, dass die Build gebrochen they'de.

Es tut uns Leid, dass diese Antwort nicht so vollständig ist, wie ich gehofft hatte.

Andere Tipps

CVS nicht Gruppenwechsel Sätze wie andere Versionskontrollsysteme zu tun; Jede Datei hat eine eigene, unabhängige Versionsnummer und Geschichte. Dies ist einer der Mängel in CVS, die Menschen aufgefordert, auf eine neuere VC zu bewegen.

Das heißt, es gibt Möglichkeiten, wie Sie Ihr Ziel erreichen konnten. Am einfachsten kann eine post-commit Haken hinzufügen E-Mails senden oder in einer Datei protokolliert. Dann zumindest, können Sie Gruppe eine Reihe von Commits zusammen mit Blick auf die Zeit die E-Mails gesendet werden, und die die Änderung vorgenommen hat.

CVS verfügt nicht über diese Fähigkeit. Sie können jedoch erhalten sie durch den Kauf einer Lizenz für FishEye oder möglicherweise durch Verwendung von cvstrac (Anmerkung: ich habe nicht versucht CVS Trac).

Oder könnten Sie SVN, migrieren, die diese Fähigkeit über atomare Commits bietet. Sie können in einer Gruppe von Dateien überprüfen und haben zählen als ein einzigen begehen. In CVS ist jede Datei eine separate begehen, egal was Sie tun.

Wir haben dies über einen Perl-Skript, das die Changelog-Dumps und Sie können eine kostenlose Version von Perl für Windows auf dem zweiten Link.

Cvs2Cl Skript

Aktive Perl

Ich verwende loginfo in CVSROOT und schreiben diese Informationen in eine Datei

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

Wird "cvs history -a -l" erhalten Sie in der Nähe? Zeigt für alle Benutzer letztes Ereignis pro Projekt ...

CVSNT unterstützt IDs verpflichten, die Sie an Ort und Stelle verwendet werden können Tags im Protokoll, Kasse oder Update-Befehlen. Jeder Satz von Dateien begangen (Commits sind atomar in CVSNT) erhält eine eigene eindeutige ID. Sie müssen nur die commitid der letzten in der Datei über cvs log zuerst überprüft, um zu bestimmen (Sie können die Ausgabe über -d „vor 1 Stunde“ oder ähnliches beschränken) und dann Abfrage, welche anderen Dateien, die ID haben.

Eclipse-hat Changesets eingebaut. Sie können die letzten Änderungen sehen (zumindest eingehende Änderungen aka Updates) durch begehen. Es tut dies, indem sie die Commits nach Autor Gruppierung, Commit-Nachricht und ähnliche Zeitstempel.

Dies funktioniert auch für „Vergleichen Sie mit / eine andere Branche oder Version“, wo Sie Zweige, Tags und Termine wählen können. Schauen Sie durch die Synchronisationsansicht Icons für ein Popup-Menü mit „Change Sets“ und überzeugen Sie sich selbst.

Edit: Dies würde sich ändern zumindest als Zuschauer an Eclipse, aber abhängig von der Frequenz müssen Sie vergleichen und Gruppe ist es vielleicht nicht so schlimm sein. Wenn Sie wollen mehr, nicht verwenden - verwenden Eclipse-nur für CVS. Es sollte möglich sein, auch einen anständigen Größe grafische cvs Client über das RCP mit allen Plugins, aber this'd definitiv out of scope sein ...

Ist das nicht ein Problem gelöst? Ich würde denken, jede der verschiedenen Tool auf der CI Matrix dass unterstützt beide CVS und E-Mail-Benachrichtigungen für Sie tun können.

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