Wie finde ich heraus, welche CVS-Tags welche Dateien und Pfade abdecken?

8

Es gibt ein veraltetes CVS-Repository, das eine große Anzahl von Verzeichnissen, Unterverzeichnissen und Pfaden enthält. Es gibt auch eine große Anzahl von Zweigen und Tags, die nicht alle Pfade abdecken müssen. Dateien - normalerweise eine Teilmenge. Wie kann ich herausfinden, welcher Branch / Tag welche Dateien und Pfade abdeckt?

Das CVS-Protokoll enthält bereits die Liste der Tags pro Datei. Die Aufgabe erfordert, dass ich dies in Dateien pro Tag umsetze. Ich konnte solche Funktionalität in der aktuellen WinCVS (CVSNT) Implementierung nicht finden. Bei genügend leeren Zyklen kann ich ein Perl-Skript schreiben, das das tun würde, der Algorithmus ist nicht komplex, aber es muss getan werden.

Ich könnte mir vorstellen, dass es einige Leute gibt, die solche Informationen brauchen und dieses Problem gelöst haben. Daher denke ich, sollte ein leicht verfügbares (Open Source / Free) Werkzeug dafür sein.

    
Ignas Limanauskas 26.08.2008, 18:40
quelle

6 Antworten

7

Um festzustellen, welche Tags für eine bestimmte Datei gelten, verwenden Sie:

%Vor%

Dies wird alle Versionen der Datei ausgeben und welche Tags auf die Version angewendet wurden.

Um festzustellen, welche Dateien in einem einzelnen Tag enthalten sind, ist das einzige, was ich mir vorstellen kann, mit dem Tag auszuchecken und zu sehen, welche Dateien zurückkommen. Der Befehl dafür lautet:

%Vor%     
John Meagher 29.08.2008, 18:27
quelle
11

Um Tags in einer Datei aufzulisten, kann man auch tun:

%Vor%     
Joakim Elofsson 23.06.2009 21:10
quelle
4

die oben genannte Methode hat bei mir nicht funktioniert

cvs -q rdiff -s -D 2000-01-01 -r yourTagName

aber nach viel Herumspielen habe ich das erkannt

cvs -q rdiff -s -D 2000-01-01 -r yourTagName Modulname

funktioniert

    
ninjasmith 08.11.2010 19:01
quelle
2

Sie müssen keinen tatsächlichen Checkout durchführen. Sie können die Option -n verwenden, um dies nur zu simulieren:

%Vor%

Damit erhalten Sie die Namen aller Dateien, die TagName im Modul ModuleName getaggt haben.

    
Oliver Giesen 06.11.2008 09:53
quelle
1

Der folgende Befehl gibt eine Liste der Dateien in diesem Tag "yourTagName". Die Dateien sind alle als neu markiert, die Revisionsinformationen in "yourTagName".

Dieser Befehl führt ein Diff zwischen 2000-01-01 und Ihrem Tag aus. Sie können auch ein anderes Datum verwenden, das älter ist.

%Vor%     
Neil Han 23.06.2009 21:00
quelle
0

Ich kenne kein Tool, das Ihnen helfen kann, aber wenn Sie Ihr eigenes schreiben, kann ich Sie vor einem Kopf bewahren: Verzeichnisse in CVS können nicht getaggt werden. Nur die Dateien in ihnen haben Tags (und das bestimmt, was ausgecheckt wird, wenn Sie ein Verzeichnis auf einem bestimmten Tag auschecken).

    
Johannes Hoff 26.08.2008 18:59
quelle

Tags und Links