Was sind die Probleme beim Verschieben eines SVN-Servers / Repositorys von Linux auf Windows?

7

Wir haben einen Server mit Fedora 7, den wir als SVN-Repository-Server verwenden. Neue IT-Richtlinien, in denen ich arbeite, schreiben vor, dass wir eine Windows-Box verwenden müssen, damit unser Server im Netzwerk sein kann.

Welche Herausforderungen müssen bewältigt werden, um diesen Schritt zu machen? Einige dieser Elemente können verwendet werden, um eine Richtlinienausnahme einzurichten.

Jay R.
quelle

Antworten:

7

Eine kleine Checkliste:

  • Zugriffsmethode . Wenn Sie über SSH auf Ihren SVN-Server zugreifen, sollten Sie möglicherweise auf HTTP umsteigen, da dies unter Windows viel mehr Mainstream ist.
  • UUID . Wenn Sie Ihr Repo verschieben, vergessen Sie nicht, das alte entweder unzugänglich oder schreibgeschützt zu machen. Dann können Sie sogar dieselbe UUID wiederverwenden und die --relocateOption des switchUnterbefehls auf dem Client für einen nahtlosen Umzug nutzen (keine neue Kaufabwicklung erforderlich).
  • Apache . Möglicherweise haben Sie bereits einen IIS (oder einen anderen Webserver auf der Box), daher sollten Sie den ändern
  • Datenbank . Wenn Sie FSFS als Repository-Datenbank verwenden, können Sie es einfach kopieren. BDB benötigt einen svn dump/loadZyklus. Überlegen Sie genau, ob Sie Ihre Datenbank auf eine Netzwerkfreigabe stellen möchten: Nur FSFS funktioniert (dies wird jedoch nicht wirklich empfohlen).
  • Benutzer . Sie müssen darüber nachdenken, wie Ihre Benutzer authentifiziert werden. Es kann so einfach sein, wie eine htpasswdDatei zu kopieren .
  • SVN-Version . Achten Sie nur darauf, dass Sie dieselbe Version Ihres SVN-Servers verwenden. Wenn nicht, benötigen Sie möglicherweise einen svn dump/loadZyklus.
  • Haken . Wenn Sie Hooks auf Ihrem SVN-Server haben, müssen Sie diese möglicherweise portieren. Entweder durch Installation derselben Skriptsprache (denken Sie an ActivePython oder ActivePerl) oder indem Sie sie einfach in vbs oder einem gleichwertigen Format umschreiben.
  • Firewall . Nur für den Fall, dass sich Ihre Server-Box auf einer Workstation-Edition befindet, vergessen Sie nicht, die Firewall-Ports zu öffnen (ziemlich trivial, aber ich wurde einmal gebissen).
Steve Schnepp
quelle
+ 1 Schöne Konsolidierung.
Chris Shaffer
6

Sie sind sich nicht sicher über alle Details, aber denken Sie daran, dass alle Hooks / Skripte, die Sie in Ihrem Repository ausführen, als Batch-Dateien neu geschrieben werden müssen.

Chris Shaffer
quelle
1
Können Sie nicht einfach einen Interpreter für die Skriptsprache installieren, die auf dem Linux-SVN-Server verwendet wird? Eine andere Möglichkeit besteht darin, die Linux-Hookscripts mit einer Batch-Datei zu versehen, die den richtigen Interpreter für das Hookscript aufruft
Otherside
Dies kann sicherlich auf viele Arten gehandhabt werden. Der wichtige Punkt ist jedoch, dass Sie ETWAS tun müssen, um damit umzugehen, und es ist ein leicht zu vergessendes Stück (daher ein "Gotcha").
Chris Shaffer
hängt davon ab, ob es sich bei den Hooks um Shell-Skripte handelt, die neu geschrieben werden müssen. Wenn es sich um Perl- oder Python-Skripte handelt, muss nur die Strawberry Perl-DLL oder Python-Exe installiert werden.
Gbjbaanb
5

Dump / Load wäre das richtige Verfahren und schützt Sie vor Problemen. Siehe das SVN-Buch

Vincent De Baere
quelle
4

Das Ausführen des VisualSVN-Servers unter Windows verlief reibungslos. VisualSVN Server kann eine beliebige Anzahl unabhängiger Subversion-Repositorys hosten.

Sie können Repositorys mit jeder von Subversion empfohlenen Methode verschieben. Dies ist auf beiden Seiten ein Standard-Repository. Beachten Sie die Repository-Version, die Sie möglicherweise aktualisieren müssen. Zugriffsberechtigungen sind Windows-orientiert. Möglicherweise müssen Sie die Authentifizierung von Clients gegenüber dem Server ändern. Viel Glück mit Hook-Skripten, falls vorhanden. Ich hoffe, sie sind in einer tragbaren Skriptsprache geschrieben, z . B. Perloder Python.

gimel
quelle
+1 für VisualSVN, wusste nichts davon!
Martin Marconcini
Dies ist, was wir beschlossen haben, es zu versuchen.
Jay R.
1

Wenn Sie versuchen, den Vorgang in umgekehrter Reihenfolge durchzuführen - indem Sie in Windows svnadmin verwenden, um ein Dumpfile eines Repositorys zu erstellen - müssen Sie die Eingabeaufforderung cmd.exe und NICHT die Powershell verwenden.

Ich habe dies getan und herausgefunden (auf die harte Tour), dass das Umleiten der Ausgabe von der Powershell zu einer Unicode-Datei führt, die svnadmin nicht lesen kann, wenn Sie dieselbe Datei in das Ziel-Repository laden. Die Ausführung dauert auch viel länger (und die Datei ist natürlich doppelt so groß).

Tim Dunnington
quelle