Frage

Ich würde gerne wissen, wie kann ich zwei Endlager für meine eine Arbeitskopie. Ich brauche ein Repository in meinem Server, so dass ich einchecken kann zwischen zwei PC / out; Ich brauche ein anderes Repository in meinem lokalen PC, so dass ich schnell das Ergebnis diff sehen kann (mein SVN-Server auf einem langsamen Hostern ist)

Wie kann ich das tun?

War es hilfreich?

Lösung

Haben Sie einen Blick auf Repository Replikation .

Sie können einen Cron-Job einrichten regelmäßig von einem Repository in die andere zu synchronisieren. Aber Sie müssen sicherstellen, dass nur einer der beiden geschehen Commits.

Wenn Commits werden beide Verwahrungs passieren, vielleicht ein verteiltes Versionierungssystem wie git , Bazaar oder Mercurial ist Ihre Gasse mehr auf? Git, für einen, können Sie sogar ziehen aus und drücken Sie auf ein Subversion-Repository direkt.

Andere Tipps

Subversion Netzzugang nicht für seinen diff Betrieb verwenden. Dies ist einer der großen Vorteile von Subversion über CVS. Also ich bin mir nicht sicher, warum Sie dieses spezifische Problem würde zu stoßen.

Eine Alternative ist Git zu verwenden und speziell auf Ihrem lokalen PC git-svn. Sie erhalten eine vollständige Kopie der gesamten Repository-Historie auf dem lokalen Computer, mit der Fähigkeit, lokal und Blick Geschichte diff (zusammen mit den vielen anderen Funktionen Git Ihr gibt). Wann immer möglich, verwende ich jetzt git-svn zu Subversion-Repositorys zugreifen zu können.

Wenn Sie nicht SVN verwenden müssen, können Sie besser sein, ein verteiltes Versionskontrollsystem zu verwenden, wie Mercurial oder Git. Jeder PC wird seine eigene Kopie des Repository hat, und Änderungen können entweder direkt vom PC oder über eine andere Kopie auf einem zentralen Server synchronisiert werden. Da jeder PC die vollständige Repository lokal gespeichert hat, können Sie ohne Netzwerkzugriff diff oder einen anderen Vorgang tun.

Wenn Ihre lokale Box Linux ist, könnten Sie all X Minuten einen crontab-Eintrag zu svn update erstellen Sie es mit dem Server im Hintergrund synchronisiert zu halten. Von dort aus würden Sie die aktuellste Kopie auf dem lokalen SVN-Server zu diff aus haben.

Sie könnten versuchen, mit SVK als lokaler Client statt SVN. SVK ist ein pseudo-verteiltes Versionskontrollsystem mit SVN-Repositories.

Sie würden SVK verwenden einen Spiegel des Repository einzurichten, zu synchronisieren, und Sie können Ihr Herz begehrt, wie viele Revisionen zurück, wie Sie möchten und es ist alle lokalen diff.

Sie können auch einen Zweig des gespiegelten Repository machen und diese als Ihre Kasse, dann Commits sind auch ein nur lokaler Betrieb, und wenn Sie mit einer Charge bereit sind, verpflichtet sie an das Remote-SVN-Repository pushen (und ziehen Sie anderen Benutzer geändert zurück, ähnlich einen sVN-Update-Befehl).

Zwei Einschränkungen:

  1. Seien Sie bereit, die Befehlszeile zu verwenden. Es gibt keine TortoiseSVK oder anderer GUI mein Wissen.
  2. Ich habe nur SVK auf Linux verwendet. Wenn Sie mit Windows arbeiten, ich bin nicht sicher, wie gut der Kunde ist.

Other than that, ich zweite mit Basar, Mercurial oder Git wie andere vorgeschlagen haben. Bazaar ist wahrscheinlich die am einfachsten zu bedienen und hat eine TortoiseBzr GUI, die ein Kollege von mir sagt ziemlich solide ist.

Git ist am schwierigsten zu verwenden. Es ist wie das Schweizer Taschenmesser, das fast breiter als lang ist, mit all den kleinen Gadgets und do-Väter in ihr und sie hängen, mit den Federn so eng, dass man gelegentlich einen Finger offen in Scheiben schneiden zu Preis versucht eine Klinge aus.

SVN ist nicht von Natur aus für solche Anwendungsfälle geeignet. Sie werden mit den Dingen hier und da zwicken haben (wie das Schreiben crons). Wenn Sie etwas wollen, das aus der Box funktioniert solchen Anwendungsfällen anzupassen, versuchen GIT.

Ich bin nicht davon überzeugt, dass Standard-Repository Replikation erhalten Sie, was Sie wollen. Mit diesen Einstellungen wird ein Proxy immer schreibgeschützt, und ich glaube nicht, in Ihrer Situation, dass der Fall ist.

würden Sie haben die svn switch --relocate, was zu tun zu wechseln, das Repository Sie bei einem Blick vor checkin. Etwas fehleranfällig.

Was Sie nach ist ein über Proxy schreiben.

Wenn Sie dies einrichten mit Apache und mod_svn_dav auf Ihrem lokalen Rechner, werden Sie ein lokales Repository haben, die alle Updates erhält und dass Sie gegen und Check-out gegen leicht diff können, für die aber alle Schreibvorgänge gehen zurück zum eigentlichen Repository dass alle anderen mit und bekommen Updates von.

Das Ergebnis von svn diff hängt nicht von der Geschwindigkeit Ihrer Verbindung zum Server; es ist ein voll lokaler Betrieb.

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