Wenn cvs2svn verwendet wie kann man Symbole, so dass ein Zweig und Tag Entschlossenheit zu dem gleichen Namen umbenennen?

StackOverflow https://stackoverflow.com/questions/157599

  •  03-07-2019
  •  | 
  •  

Frage

Ich arbeite eine CVS-Repository auf der Umwandlung, die die folgenden Symbole (unter anderem) hat:

tcm-6.1.0-branch - ein Zweig
tcm-6.1.0 - ein Tag

die Standardtransformationen cvs2svn Mit identifiziert sie richtig. Ich möchte jedoch einige aufzuräumen während der Konvertierung zu tun. Konkret würde Ich mag die redundante ‚-Zweig‘ Teil des Verzweigungssymbol fallen, da es sich in der ‚Zweige‘ DIR- in Svn sein wird. Ich habe folgendes auf den symbol_transforms des Projektes:

RegexpSymbolTransform(r'(.*)-branch', r'\1')

Jetzt habe ich am Ende mit bis „ERROR: Mehrere Definitionen des Symbols‚tcm-6.1.0‘in ...“ für jede Datei, weil tcm-6.1.0 sowohl ein Zweig ist und ein Tag. Ich habe mehr CVS Symbolpaare, die in diesem Problem führen.

Es scheint mir, dass, da die Quellensymbole unterschiedlich sind und die Zielverzeichnisse sind unterschiedlich diese Operation möglich sein sollte. Gibt es etwas, was ich bin fehlt oder ist dies einfach ein Manko von cvs2svn?

Wie kann ich diese Symbole umbenennen, so dass sie getrennt bleiben und das Ergebnis in einem Zweig und einen Tag mit dem gleichen Namen?

-

Wenn es keine Arbeit um ich versuche, um die Probleme Symbole aus den Konvertierungsregeln auszuschließen und sie mit der Hand danach zu bewegen, obwohl ich eher es Wandlungszeit tun würde.

War es hilfreich?

Lösung

RegexpSymbolTransform arbeitet bei einem zu niedrigem Niveau, bei der Analyse der Repository-Dateien. Wenn Sie also eine SymbolTransform verwenden zwei Symbole mit dem gleichen Namen zu geben, werden sie als ein und dasselbe Symbol behandelt werden.

Es ist möglich, Zweige und Tags nach der Konvertierung umbenennen, aber dies würde eine explizite SVN, dass für immer in Ihrer Geschichte bleiben begehen erfordern, Geschichte Exploration machte ein wenig komplizierter.

Stattdessen sollten Sie den Zweig mit dem ursprünglichen Namen konvertieren, aber dann cvs2svn sagen, dass es zum SVN-Pfad /branches/tcm-6.1.0 zu speichern. Auf diese Weise wird das Symbol an der richtigen Stelle für einen SVN-Zweig mit dem gewünschten Namen am Ende, aber immer noch von cvs2svn im Unterschied zu dem ähnlich benannten Tag behandelt werden.

Dies kann getan werden, --symbol-hints=symbol-hints.txt Befehlszeilenoption oder die SymbolHintsFileRule('symbol-hints.txt') Symbol Strategie Regel, wo symbol-hints.txt ist eine Datei eine Zeile wie die folgenden enthalten:

  

. tcm-6.1.0-Zweig Zweig /branches/tcm-6.1.0.

Der einzige Nachteil dieses Ansatzes, die ich mich vorstellen kann ist, dass einige Nachrichten zu begehen, die von cvs2svn automatisch generiert werden (zum Beispiel für die Schaffung der Branche) werden die ursprünglichen Zweignamen nennen.

Andere Tipps

cvs2svn macht eine Menge Magie zwischen cvs und SVN. Thats, warum kann man nicht „passen“ die Namen der Zweige und Tags, da dann cvs2svn nicht wissen, welche Version, in welche dir gehört. Mein Rat ist, sie danach in einem mit einem Werkzeug begehen einzelne umbenennen wie svnmucc . Sie haben also eine einzige begehen und dann ist alles an seinem Platz.

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