Ist es möglich, auf dem Server Verzweigen und Markieren in CVS zu beschränken?
Frage
Wir brauchen eine Produktion CVS-Repository zu SVN konvertieren. Wir verwenden cvs2svn für die Raw-Konvertierung Prozess sowie einige andere Werkzeuge.
Da dies eine Live-Entwicklungs-Repository ist, sind die Ausfallzeiten im Repository Umschaltpunkt ziemlich wichtig. Unsere Testläufe der Basis cvs2svn Umwandlung werden etwa 5 Tage derzeit nehmen, die zu lang ist.
Ich suche einige alternative Ansätze für die Herstellung der Prozess etwas inkrementell. Einer der Ansätze erfordert, dass Tagging und auf dem CVS-Repository wird eingeschränkt Verzweigung.
Ist es möglich, Tagging und Verzweigung zu beschränken, sondern erlauben normale Commits im CVS-Repository?
Lösung
So stellt sich heraus, dass dies möglich ist, mit Hilfe der taginfo pre-commit Skript wie im Admin-Bereich des Handbuch hier .
Die taginfo Datei
Was loginfo tut für Log-Meldungen, tut taginfo für Tags. Die linke Seite der taginfo ist regulären Ausdrücken, wie üblich, und die rechte Seite ist Programme. Jedes Programm wird automatisch Argumente übergeben, wenn CVS-Tag aufgerufen wird, in dieser Reihenfolge:
arg 1: tag name
arg 2: operation ("add" => tag, "mov" => tag -F, "del" => tag -d)
arg 3: repository
arg 4, 5, etc: file revision [file revision ...]
Wenn das Programm ungleich Null zurückgegeben, wird der Tag abgebrochen.