Wie cvs Kommentarhistorie zu suchen

8

Ich kenne diesen Befehl: cvs log -N -w<userid> -d"1 day ago"

Leider wird dadurch ein formatierter Bericht mit vielen Zeilenumbrüchen erstellt, so dass sich der Dateipfad, die Dateiversion und der Kommentartext in separaten Zeilen befinden. Daher ist es schwierig, alle Vorkommnisse von Kommentartexten (z. B. grep) zu untersuchen und die Übereinstimmungen mit Datei / Version zu korrelieren.

(Beachten Sie, dass die Protokollausgabe vollkommen akzeptabel wäre, wenn nur cvs die native Filterung durchführen könnte.)

EDIT: Beispielausgabe. Ein solcher Textblock wird für jede Repository-Datei gemeldet:

%Vor%     
Chris Noe 23.09.2008, 00:06
quelle

7 Antworten

9

Die Option -w scheint mit der Option -S besser zu funktionieren. Andernfalls gibt es zusätzliche Ergebnisse, die nicht mit der Benutzer-ID in Zusammenhang stehen. Vielleicht kann es jemand erklären.

%Vor%

Damit habe ich vernünftigen Erfolg bekommen, es zu grep zu leiten:

%Vor%

Ich leite die Ausgabe in eine Datei um, da das cvs-Protokoll laut ist und ich bin mir nicht sicher, wie ich es leise machen soll. Ich nehme an, eine Alternative besteht darin, den stderr auf /dev/null umzuleiten.

    
s_t_e_v_e 19.12.2008, 19:32
quelle
4

Sie möchten cvsps - was Patchsets aus dem CVS-Verlauf generiert. Dann sollten Sie nur eine Instanz Ihres Kommentars in der cvsps-Ausgabe haben, mit den Dateien, die genau darunter aufgelistet sind

    
Tim West 17.11.2009 22:55
quelle
2

Meine ersten Gedanken waren, egrep (oder grep -E, glaube ich) zu verwenden, um nach mehreren Mustern zu suchen, wie zum Beispiel:

%Vor%

Aber dann realisierte ich, dass Sie intelligenter filtern wollten.

Zu diesem Zweck würde ich awk (oder perl) verwenden, um die Ausgabe Zeile für Zeile zu verarbeiten und eine Echo-Variable zu setzen, wenn Sie einen Abschnitt von Interesse finden; Pseudocode hier:

%Vor%     
paxdiablo 23.09.2008 00:25
quelle
1

Hier ist was ich getan habe - ein einfaches Java-Skript:

%Vor%

Und so habe ich es benutzt:

%Vor%     
quelle
1

Dieses Kommando und gawk Skript hilft mir, nur den Dateinamen, das Datum und die Kommentarzeile jedes Logeintrages zu finden.

%Vor%     
JochenJung 17.12.2015 16:05
quelle
0

Das könnte viel zu übertrieben sein, aber Sie könnten git-cvsimport um den CVS-Verlauf in ein Git-Repository zu importieren und ihn mit den Werkzeugen von Git zu durchsuchen. Sie können nicht nur innerhalb von Commit-Nachrichten nach Text suchen, sondern auch nach Code suchen, der aus Dateien in Ihrem Repository hinzugefügt oder entfernt wurde .

    
Greg Hewgill 23.09.2008 00:17
quelle
0

CVSSearch könnte helfen, aber es ist eine CGI-Anwendung: '(

    
Mez 23.09.2008 00:19
quelle

Tags und Links