2009-03-03 12 views
12

Ist es möglich, dieselbe Arbeitskopie zu verwenden und dieselbe in zwei verschiedene SVN-Server zu setzen (commit, update, ...)?Gleiche Arbeitskopie des Codes mit 2 SVN-Servern

+0

Gute Frage, +1, du wärst überrascht, wie viele Menschen das aus dem einen oder anderen Grund tun müssen. –

Antwort

3

Ja, Sie können den Befehl Relocate (thanks, Peter) verwenden, um Ihre Arbeitskopie mit dem ersten Repository zu verbinden, dort zu committen und dann in das zweite Repository zu verschieben und dort ebenfalls zu committen. Erstellen Sie besser zuerst eine Kopie Ihres Arbeitskopienordners.

+1

Ich bekomme 'Repository UUID stimmt nicht' Fehler :( – Saneef

+0

Sind die Anmeldedaten für die Repositories anders? –

+0

Dies funktioniert nicht! Jedes Repository hat seine eigene UUID, so dass Sie nicht --relocate auf eine neue URL wechseln können ist ein anderes Repository, außer dass du die UUID manipulierst (was nicht gut ist) –

1

Wenn mehrere Leute mit verschiedenen Svn-Servern sprechen würden, hätten Sie Probleme. Die beiden Server werden nicht miteinander reden, um sicherzustellen, dass sie keine Konflikte haben, die gleichen Revisionsnummern verwenden. Zumindest kenne ich keine Svn-Hacks, die das tun. (Es gibt andere verteilte Versionssysteme, die auf svn basieren, wie svk.)

Was ist das Hauptziel hier? Können Sie nur auf einen einzelnen Server pushen, aber dann einen Post-Commit-Hook haben, um die Änderung auf einen anderen Server zu replizieren, was einen einfachen schreibgeschützten Zugriff von der anderen Stelle aus ermöglichen würde?

Je mehr Details Sie angeben können, was Sie tun möchten, desto eher können wir Ihnen helfen.

1

Verteilte Versionskontrollsysteme wie Mercurial, Bazaar oder Git sind besser für solche Aufgaben geeignet. Sie können Push Sie ändert sich in einer beliebigen Anzahl von Repositories.

1

Es ist möglich, aber schrecklich rassig. Ich muss das jetzt tun, weil mein ISP hirntot ist und ich ein schweres Problem habe, verschiedene Rechenzentren in Europa zu erreichen. Also schiebe ich auf meinen Server in Kanada, der sofort zum echten Repository wechselt.

Bei zwei Gelegenheiten endete ich mit einer anderen Revisionsnummer (+1), was bedeutet, dass meine nächste Version sehr interessant wurde.

Also habe ich nur SSHFS (ein FUSE-Mount) verwendet, um Dateien an Ort und Stelle auf der Kanada-Kopie zu bearbeiten, dann direkt begangen. Es ist immer noch ein echter Schmerz und einer der vielen Gründe, warum ich Mercurial so sehr liebe.

0

Zuerst Kasse Ihr Code auf jeden Server, und dass nach einem Skript svn_up.sh wie diese machen:

ssh server_one_ip_address svn up /path_to_working_copy_on_server1 
ssh server_two_ip_address svn up /path_to_working_copy_on_server2 

Verwenden sh svn_up .sh anstelle von svn bis

Verwandte Themen