Frage

Meine Firma hat eine Tochtergesellschaft mit einer langsamen Internetverbindung. Unsere Entwickler dort leiden mit unserer zentralen Subversion Server zu interagieren. Ist es möglich, einen Sklaven / Spiegel für sie zu konfigurieren? Sie würden in Wechselwirkung treten lokal mit dem Server und alle Commits zum Master-Server automatisch synchronisiert werden.

Dies sollte so transparent wie möglich für die Entwickler arbeiten. Usability ist ein Muss.

Bitte, keine Vorschläge unser Versionskontrollsystem geändert werden.

War es hilfreich?

Lösung

Subversion 1.5-Proxy-Unterstützung eingeführt, wenn Sie http verwenden das Repository zu hosten. Entwickler können ihre Arbeitskopien von der Slave-Kasse. Dann werden alle Nur-Lese-Operationen (diff, log, aktualisieren usw.) den Slave verwenden. Wenn begehen, transparent der Slave leitet alle Schreiboperation an den Master.

Andere Tipps

Es ist möglich, aber nicht unbedingt einfach: das Problem, das Sie gefährlich nahe zu lösen versuchen, ist eine verteilte Entwicklungsumgebung einrichten, die nicht genau das, was SVN ist für

.

Die SVN-Spiegel Art und Weise

Sie können mit svn mirror wie im SVN Buch Dokumentation erklärten einen read-only erstellen Spiegel Ihres Master-Repository. Ihre Entwickler jeweils die Interaktion mit dem Spiegel am nächsten zu ihnen. Allerdings Benutzer der Slave-Repository müssen verwenden

svn switch --relocate master_url

, bevor sie begehen können, und sie müssen sich daran zu erinnern auf dem Slave zu verlagern zurück, sobald sie fertig sind. Dies könnte um das Repository ein Wrapper-Skript automatisiert werden Befehle auf SVN modifizieren, wenn Sie die Kommandozeilen-Client verwenden. Beachten Sie, dass der Umzug Betrieb während schnell ein wenig Overhead hinzufügt. (Und vorsichtig sein, den Repository-UUID zu duplizieren - siehe die SVN-Dokumentation .)

[Bearbeiten - Prüfen der TortoiseSVN Dokumentation scheint es, dass Sie TortoiseSVN haben Hook-Scripts Client-Seite auszuführen. Sie können an dieser Stelle eine Pre / Post-Commit-Skript erstellen können. Entweder das, oder versuchen, um zu sehen, ob Sie die TortoiseSVN Automatisierungsschnittstelle do it].

Die SVK Art und Weise

SVK ist eine Reihe von Perl-Skripte, die eine verteilte Spiegelung Service über SVN emulieren. Sie können es so einrichten, dass der lokale Zweig (der Spiegel) durch mehrere Entwickler gemeinsam genutzt wird. Dann grundlegende Verwendung für die Entwickler vollständig transparent sein. Sie werden das SVK-Client für Rosinenpickens, Zusammenführen und starmerging verwenden. Es ist machbar, wenn Sie Ihren Kopf um die verteilten Konzepte zu bekommen.

Die git-svn Art und Weise

Während ich nie, dass ich verwenden, könnten Sie auch haben entfernte Entwickler verwenden git lokal und verwenden Sie die git -svn Gateway für die Synchronisation.

Abschließende Worte

Es hängt alles von Ihrer Entwicklungsumgebung und dem Grad der Integration Sie benötigen. Abhängig von Ihren IDE (und wenn Sie können SCM ) Sie vielleicht einen Blick auf andere haben wollen vollständig verteilte SCMs (man denke an Mercurial / Bazaar / Git / ...), die Entwicklung aus der Box verteilt unterstützen.

Sie sollten Das SVK Versionskontrollsystem

versuchen
  

SVK ist ein dezentrales Versionskontrollsystem mit dem robusten Subversion-Dateisystem aufgebaut. Es unterstützt Repository-Spiegelung, getrennt Betrieb, Geschichte empfindliche Verschmelzen und integriert mit anderen Versionskontrollsystemen, sowie populären Visual Merge-Tool.

Auf diesem Link gibt es Text über Mit SVK auf SVN-Repositorys zu synchronisieren

Wenn eines der Repositories nur dann vollständig lesen ist, können Sie ‚svnsync‘ verwenden es, um mit dem Master-Repository auf dem Laufenden. Dieses Werkzeug wird oft in Kombination mit der Proxy-Unterstützung verwendet, um einen Master-Slave-Betrieb zu schaffen.

z. Apache tut dies ihre Repository auf verschiedenen Kontinenten zu spiegeln. Der Master Repostitory ist in den USA befindet, aber wenn ich das Repository aus der EU Zugang erhalte ich einen lokalen Spiegel, der ebenso wie der Master-Server funktioniert.

Die inotify-Tools funktioniert gut für mich, Details sind auf dieser Website erwähnt:

http://planet.admon.org/synchronize-subversion -repositories-mit-inotify-tools /

Es ist eine kommerzielle Lösung, die echte Aktiv-Aktiv-Replikation (nicht Master-Slave) von Subversion-Repositorys bietet, wenn Sie Leistung und Datensicherheit über müssen, was svnsync bietet „Subversion Multisite“ genannt.

Disclaimer: Ich für das Unternehmen arbeiten, die diese Lösung macht

VisualSVN Server auf mehreren Systemen Repository-Replizierung wurde für diesen Fall ausgelegt.

können Sie halten das Master-Repository in Ihrem Hauptbüro und das Setup mehr beschreibbaren Slave-Repositories an den entfernten Standorten.

  

Dies sollte so transparent wie möglich für die Entwickler arbeiten.   Usability ist ein Muss.

  • Die Replikation zwischen den Slaves und der Master ist transparent und automatisch,

  • Jede Master- und Slave-Repository ist eine beschreibbarer Subversion-Repository aus der Sicht des Benutzers,

  • Works out-of-the-box und kann in ein paar Klicks via VisualSVN Server Manager MMC-Konsole.

  • konfiguriert werden

VisualSVNServerManagerConsoleMultisite

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