Ich musste dieses Problem nur selbst angehen. Ich habe einen Windows XP-Computer mit einem separaten Windows-Server, auf dem VisualSVN Server gehostet wird .
Ich habe auch TortoiseHG installiert sowie den CollabNet Subversion Command-Line Client .
<Enable Convert Extension w/ Tortoise Hg 2>
Vielen Dank an bgever für den Hinweis in den Kommentaren, dass es mit TortoiseHg 2.0 einfacher als je zuvor ist, die Konvertierungserweiterung zu aktivieren. Wie er sagt
Mit TortoiseHG 2.0 wurde dies erheblich vereinfacht: Starten Sie die TortoiseHG Workbench über das Startmenü. Wählen Sie Datei -> Einstellungen. Wählen Sie Erweiterungen aus der Liste. Aktivieren Sie das Kontrollkästchen "Konvertieren" und klicken Sie auf "OK". Das ist es! Sie müssen nicht mehr versuchen, die Konfigurationsdatei zu generieren und im Dateisystem zu suchen. - Bgever 11. März um 7:56 Uhr
</Enable Convert Extension w/ Tortoise Hg 2>
<Enable Convert Extension Manually>
Um ein Repository von SVN in HG zu konvertieren, habe ich die folgenden Schritte ausgeführt:
1) Öffnen Sie C: \ Programme \ TortoiseHg \ Mercurial.ini
BEARBEITEN
Zu Ihrer Information - Tortoise Hg hat diese Datei auf migriert
- XP oder älter - C: \ Dokumente und Einstellungen \ USERNAME \ Mercurial.ini
- Vista oder höher - C: \ Users \ USERNAME \ Mercurial.ini
Diese Datei ist größtenteils leer und Sie listen nur auf, was Sie dort überschreiben möchten. Wenn Sie das haben, fügen Sie einfach diese beiden Zeilen ganz am Ende der Datei hinzu:
[extensions]
convert =
2) Suchen Sie nach der Zeile, die mit beginnt
[Erweiterungen]
3) Darunter sehen Sie eine Liste von Schlüsselwörtern, die in jeder Zeile mit einem Semikolon (;) auskommentiert sind
4) Suchen Sie die Zeile mit der Aufschrift
; convert =
und löschen Sie das Semikolon, damit es liest
konvertieren =
</Enable Convert Extension Manually>
5) Öffnen Sie die Eingabeaufforderung und navigieren Sie zu dem Verzeichnis, in dem der neue hg-Ordner erstellt werden soll (der Prozess erstellt einen neuen Ordner mit dem Namen yourvnreponame-hg in dem Verzeichnis, in dem die Eingabeaufforderung geöffnet ist).
6) Verwenden Sie diesen Befehl
hg Datei konvertieren: /// y: / yoursvnreponame
Ich habe festgestellt, dass das Konvertierungstool Probleme mit vernetzten Repositorys haben kann, daher musste ich ihm ein Laufwerk zuordnen, aber das hat für mich gut funktioniert.
quelle
Mercurial verfügt hierfür über eine integrierte Konvertierungserweiterung .
quelle
Um ein SVN-Repo in ein HG-Repo umzuwandeln UND auf einen anderen Server zu kopieren, benötigen Sie einige Dinge.
convert
Erweiterung zu Tortoise hinzufügen . Starten Sie die TortoiseHG Workbench über das Startmenü. Wählen SieFile -> Settings
. Wählen SieExtensions
aus der Liste. Aktivieren Sie dasconvert
Kontrollkästchen und klicken Sie auf OK.Zuerst die Umstellung…
\\server\folder
Ordnen Sie den SVN Repo-Ordner nicht selbst zu. Ordnen Sie den Ordner direkt darüber zu.) Geben Sie dem zugeordneten Laufwerk einen Buchstaben wieY:\
CD /D Y:\
Y:\
Geben Sie an der Eingabeaufforderung Folgendes ein:hg convert y:/RepoName
(Verwenden Sie den Namen des aktuellen Repo.) Achten Sie auf die Schrägstriche vor und zurück. Der Befehl ist ein Schrägstrich. Wenn der Name Leerzeichen enthält, setzen Sie den Namen in Anführungszeichen. (dhY:/"My Repo folder"
)Zweitens das Klonen…
File -> Clone Repository
quelle
init
das erste Repository sollten?Noch immer erwähnt niemand hgsubversion ( Extension Wiki ), was ohne Kopfschmerzen (mit Ausnahme seltener Fälle und bestimmter Bäume) möglich ist.
Fügen Sie einfach die Erweiterung hinzu, aktivieren Sie sie und
hg clone SVN_REPO
das lokale Quecksilber-Repoquelle
Dies ist in den TortoiseHg FAQ :
Es ist also anscheinend möglich - ich benutze Linux, also habe ich es nicht selbst versucht.
quelle
Ich habe gerade ein Remote-SVN-Repo mit HTTP-Authentifizierung in ein Mercurial-Repo konvertiert, und ich möchte Ihnen sagen, dass es nicht viele Dokumentationen dazu gibt. Ich musste die Mercurial-Quelle herunterladen und sie mithilfe des Quellpakets eigenständig installieren, damit die SVN-Bindungen ordnungsgemäß funktionieren.
Ich habe es wie folgt installiert:
Was auf meiner Server 2003-Box gut funktioniert hat. Ich kann jetzt ein SVN-Repo richtig konvertieren, indem ich so etwas mache:
Die Dokumentation für ConvertExtension auf der Mercurial-Site ist nicht besonders klar, sagt aber Folgendes aus:
Jetzt verwende ich nur die eigenständige Version zum Konvertieren und TortoiseHg für die eigentliche VCS-Arbeit.
quelle
besser spät als nie ...
Zwei Antworten zum Preis von einer ...
Wenn es sich um ein öffentliches Open-Source-Repo handelt, können Sie einfach http://svn2github.com/add/ verwenden. Es dauerte ungefähr eine halbe Stunde, um dieses Repo auf GitHib zu klonen und es dann einfach in Hg zu ziehen.
Der Vorteil der Verwendung
hg convert
ist, dass sie wieder aufgenommen werden kann. Das Konvertieren von SVN in Hg kann Tage dauern . Wenn Sie dies beenden, wird es dort fortgesetzt, wo es aufgehört hat.Unten ist eine Batch-Datei, die ich geschrieben habe, weil Codeplex SVNbridge Müll. Das Repo in diesem Beispiel hat einige Tage gedauert, um die gesamte Geschichte abzurufen (ich bin in Australien, daher war die Latenz möglicherweise ein Faktor). Ich würde gerne glauben, dass es einem TFS-Server irgendwo eine gute Chance gegeben hat.
Diese Batch-Datei kann jederzeit ausgeführt werden, um Aktualisierungen aus der SVN-Quelle abzurufen, wenn sie die einzigen auf der Welt sind, die SVN tatsächlich noch verwenden. Ich habe es nicht getestet. Sehen Sie also, was passiert, wenn Sie dies tun. Wenn ich Sie wäre, würde ich den ursprünglichen Zweig verlassen, wenn Sie das Repo bearbeiten möchten.
Das
robocopy shamap
Zeug ist, den SVN-Verlauf beizubehalten, wenn Sie das Hg-Repo klonen. Shamap ist kurzlebig - überprüfen Sie die Batch-Datei und shamap in (ich würde das in einem neuen Zweig tun).der Stapel...
quelle
Verwenden der
convert
Erweiterung von Mercurial:convert=
zu dem[extensions]
Abschnitt von .hgrc wie folgt aus :sudo apt-get install python-subversion
hg convert
Befehl ausführenhg convert -h
für Hilfehg convert http://[svnserver]/[Project] --source-type svn [DestinationDir]
(siehe Anmerkung 2)hg push https://[mercurialserver]/[Project]
Hinweis : Sie können den Befehl hg convert sogar wiederholen, um neue Änderungen aufzunehmen, die nach der vorherigen Konvertierung im svn-Repository vorgenommen wurden.
Hinweis 2 : Wenn hg convert nicht funktioniert
http://
odersvn://
Sie zuerst das Subversion-Repository auschecken (oder ein vorhandenes aktualisieren) und mit der lokalen Kasse konvertieren können; Beispiel:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]
quelle