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.
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%Um Tags in einer Datei aufzulisten, kann man auch tun:
%Vor%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
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.
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%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).
Tags und Links cvs