Versionskontrolle PHP-Webprojekt

Lesezeit: 3 Minuten

Benutzer-Avatar
Adam Lemann

Wir haben ein PHP-Projekt, das wir gerne versionieren würden. Im Moment arbeiten drei von uns an einer Entwicklungsversion des Projekts, die sich in einem externen Ordner befindet, mit dem alle unsere Eclipse-IDEs verknüpft sind, und daher keine Versionskontrolle.

Was ist der richtige Weg und der beste Weg, um dies zu versionieren?

Wir haben ein SVN eingerichtet, aber wir müssen nur einen guten Weg zum Ein- und Auschecken finden, der es uns ermöglicht, auf dem Entwicklungsserver zu testen. Irgendwelche Ideen?

Wir waren in einer ähnlichen Situation und haben Folgendes getan:

  • Richten Sie zwei Branches ein – den Release- und den Development-Branch.
  • Fügen Sie für den Entwicklungszweig einen Post-Commit-Hook hinzu, der das Repository auf dem Entwicklungsserver bereitstellt, damit Sie es testen können.
  • Sobald Sie fertig sind, führen Sie Ihre Änderungen in den Release-Branch ein. Ich würde auch vorschlagen, dort einen Post-Commit-Hook für die Bereitstellung einzubauen.

Sie können auch individuelle Entwicklungsserver für jedes Teammitglied auf seinen Arbeitsstationen einrichten. Ich finde, dass es die Dinge ein wenig beschleunigt, obwohl Sie etwas mehr Einrichtungszeit haben.

Wir mussten einen einzigen Entwicklungsserver verwenden, da wir ein proprietäres CMS verwendeten und auf Lizenzprobleme stießen. Unser Post-Commit-Hook war also ein einfacher FTP-Bot.

Hier ist, was wir tun:

  • Jeder Entwickler hat eine VM, die wie unser Integrationsserver konfiguriert ist
  • Der Integrationsserver bietet Platz für Trunk, jeden Benutzer und einige Steckplätze für Branches
  • Der Produktionsserver
  • Hooks sind in Subversion, um eine E-Mail zu senden, wenn Festschreibungen vorgenommen werden

Zu Beginn eines Projekts erstellt der Benutzer einen Zweig und checkt ihn auf seiner persönlichen VM aus und holt sich eine saubere Kopie der Datenbank. Sie tun ihre Arbeit und verpflichten sich, während sie gehen.

Sobald sie alles in ihrem eigenen persönlichen Bereich abgeschlossen haben, melden sie sich beim Integrationsserver an und checken ihren Zweig aus, führen ihre Tests durch usw. Wenn alles bestanden ist, wird ihr Zweig in Trunk zusammengeführt.

Der Trunk wird neu erstellt, die gesamte Testreihe wird ausgeführt, und wenn alles gut ist, erhält er den großen alten Gütesiegel, wird in SVN getaggt und am Ende der Nacht in die Produktion befördert.

Wenn zu irgendeinem Zeitpunkt ein Commit von jemand anderem vorgenommen wird, erhalten wir eine E-Mail und können diese Änderungen in unseren einzelnen Zweigen zusammenführen.

Bohnenstange verfügt über integrierte Post-Commit-Hooks für die Bereitstellung auf Entwicklungs-, Staging- und Produktionsservern.

Benutzer-Avatar
Justin Tanner

Eine Möglichkeit, Subversion für die PHP-Entwicklung zu verwenden, besteht darin, ein Repository für einen oder alle drei Entwickler einzurichten und dieses Repository eher als Synchronisierungstool als als echte Versionskontrolle zu verwenden.

Sie könnten,

  • Machen Sie ein Repo

  • Fügen Sie Ihre gesamte PHP-Dokumentstruktur Ihres Projekts hinzu

  • Checken Sie eine Kopie dieses Repositorys an der richtigen Stelle auf Ihrem Entwicklungsserver aus

  • Verwenden Sie einen SVN-Hook, der beim Commit aktiviert wird

Dieser Hook aktualisiert automatisch den Inhalt des Dev-Servers, wenn jemand im Team Code eincheckt.

Haken befindet sich in:

svn_dir/repo_name/hooks/post-commit

Und könnte so aussehen:

/usr/bin/svn up /path_to/webroot –username svn_user –password svn_pass

Dadurch wird Ihre Arbeitskopie auf dem Entwicklungsserver auf den neuesten Stand aktualisiert.

Was ist mit etwas Verteiltem? Sie können beispielsweise mit Mercurial beginnen, verschiedene Workflows ausprobieren und sehen, welcher am besten zu Ihnen passt.

Benutzer-Avatar
Shawn

Jeder von Ihnen könnte es lokal oder auf Ihrem eigenen Entwicklungsserver (oder sogar auf demselben mit einem anderen Port …) ausführen.

Benutzer-Avatar
cmcculloh

Ein möglicher Weg (es gibt wahrscheinlich bessere Wege):

Jeder von Ihnen sollte seine eigene ausgecheckte Version des Projekts haben.

Haben Sie eine lokale Kopie des Servers auf Ihrem Computer und testen Sie ihn dort den ganzen Tag. Dann führen Sie am Ende jedes Tages (oder wann immer) alles zusammen, was Sie zum Testen bereit sind, und Sie checken es auf dem Entwicklungsserver aus und testen es.

1217870cookie-checkVersionskontrolle PHP-Webprojekt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy