2009-05-05 1 views
3

Wie können Quellen auf lokalen Computern am besten gemeinsam genutzt werden?Freigeben von Quellcode zwischen Computern

Ich arbeite an einem Cross-Plattform-Projekt mit einem SVN-Repository. Ich führe einen Checkout auf einer Plattform durch (vielleicht osx) und mache Änderungen. Ich muss dann meinen modifizierten Code auf anderen Plattformen (XP, Vista, ...) testen, BEVOR man ihn eincheckt. Manuelles Kopieren von Dateien zwischen Maschinen oder das Ausführen von allem von einem Netzlaufwerk ist ein Schmerz ... welche besseren Möglichkeiten habe ich?

Antwort

11

Sie könnten auch einen Zweig für sich selbst in SVN erstellen. Dann können Sie sich in Ihrem Zweig einchecken, den Filialcode auf allen Testmaschinen auschecken und wenn Sie zufrieden sind, verwenden Sie SVNs Branch Merge Tool, um alle in der Verzweigung gespeicherten Änderungen wieder in den Trunk einzufügen.

+0

Per Definition ist dies genau das, wofür SVN gut ist. – Travis

1

warum verwenden Sie nicht svn noch .. Bevor Sie zu einer anderen Plattform wechseln, checken Sie ein und markieren Sie die aktuelle Version. Checkout und testen Sie es auf der anderen Plattform. Wenn Sie scheitern, ändern Sie es einfach.

+0

Ich würde davon ausgehen, dass andere Leute in der aktuellen Branche arbeiten, und das könnte eine Wettlaufsituation verursachen - jemand könnte versuchen, ein Update über seinen ungeprüften Code einzuplanen. –

+0

@ Jonathan So erstellen Sie einen anderen Zweig. –

0

Forschung Plattform-unabhängige Netzwerk-Disk-Mounts - so etwas wie sshfs. Überprüfen Sie die Quelle auf einem Computer und mounten Sie diesen Speicherort dann über das Netzwerk auf dem anderen Computer.

Alternativ können Sie ein Betriebssystem in einer virtuellen Maschine auf demselben Computer ausführen und nur die Dateien auf diese Weise freigeben. Virtuelle Maschinen wie VirtualBox geben Ihnen in ähnlicher Weise über ein Netzwerk-Mount Zugriff auf das Dateisystem der Host-Maschinen.

3

Sie könnten versuchen, einen Zweig im Repository nur für Ihre eigenen Änderungen zu erstellen. Nehmen Sie Änderungen an der Verzweigung vor, übernehmen Sie die Änderungen, überprüfen Sie die Verzweigung auf den anderen Plattformen und testen Sie sie. Wenn alles funktioniert, füge den Zweig mit dem Stamm zusammen.

+0

AKA genau das, was Ryan oben gesagt hat. – David

1

Ich würde sagen, die beste und einfachste zu verwalten (einmal und läuft ist eine Entwicklungsabteilung, die automatisch in die Testumgebungen entfaltet und dann wenn Sie glücklich sind, können Sie bis zu einem Release Branch zusammenführen. Wird eine Weile dauern Setup, aber Sie werden so viel Zeit auf lange Sicht speichern.

Es wird Ihnen auch zu haben, Dinge in Test erlauben, während Sie auf anderen Einzelteilen arbeiten.

Wenn Sie dies nicht dann folgen wollen Ein einfaches Shell-Skript sollte ausreichen, das Sie ausführen müssen, wenn Sie es bereitstellen möchten.

0

Ich denke, du bist m einen Grundfehler hier kassieren. Die Regel mit SVN (und anderen adäquaten VC-Systemen) lautet "check in früh und oft, genau wie Voting". Wie @Koray sagt, checken Sie den Code ein, überprüfen Sie ihn von den anderen Maschinen und erstellen Sie ihn neu. Andernfalls riskieren Sie, dass Ihre potenziellen Änderungen auf den anderen Computern nicht wiederhergestellt werden oder dass verschiedene Änderungssets zusammengeführt werden müssen.

Der Trick besteht darin, ein Tag für die neueste getestete Version zu erstellen, so dass Sie bei Problemen auf diesen speziellen Snapshot zurückgreifen können.

0

Ich würde ein Build-Skript mit einem Werkzeug wie Ant erstellen, um meine ausgecheckte Quelle zu meinem Satz von verschiedenen Testmaschinen über Netzwerkfreigaben zu kopieren. Ich würde dann fortfahren, auf jeder Maschine zu testen, aber nur Änderungen an meiner ausgecheckten Quelle vornehmen - alle Änderungen werden mit dem Build-Skript auf meine Testmaschinen verteilt.

Sobald ich zufrieden bin, würde ich meine Änderungen von der gleichen Maschine begehen, von der ich baue.

1

Sie könnten immer Git oder ein anderes DVCS ausprobieren, mit dem Sie Inhalte austauschen können, ohne den zentralen Server jedes Mal zu verwenden.

Git ermöglicht es Ihnen auch, Push/Pull (aka commit/update) zu/von einem SVN-Server, gibt Ihnen aber mehr Spielraum auf der Seite.

0

Das grundlegende Problem ist das Testen VOR dem Einchecken. Das ist genau das Problem. Es ist nichts falsch, den Code einzuchecken und dann zu testen. Der Zweck der Verwendung der Quellcodeverwaltung ist Rollback zu ermöglichen, wenn etwas nicht funktioniert.

Ich nehme auch von Ihrem Beitrag an, dass Sie an dem Projekt alleine arbeiten, also wäre es noch weniger ein Problem. Wenn Sie in einem Team arbeiten, dann erstellen Sie einen separaten SVN-Zweig, um die Entwicklung durchzuführen und dann mit dem Haupttrunk zu verschmelzen, wenn das Testen und die Entwicklung abgeschlossen sind.

Eine weitere Option, verwenden Sie virtuelle Maschinen.