2009-09-02 18 views
5

Versionskontrollsysteme sind offensichtlich wichtig in Entwicklungsprojekten, aber dort scheint die Verwendung in Webentwicklungsprojekten komplexer zu sein, was mit der Anforderung verbunden ist, einen Webserver zu haben, der alle außer den einfachsten Webanwendungen ausführt.Wie implementiert man die Versionskontrolle für die Webentwicklung am besten?

Vor diesem Hintergrund habe ich umsah und entdeckt ein paar verschiedene Methoden der Verwendung von Versionskontrolle in Web-Entwicklungsprojekte:

  1. jeder Entwickler mit einer virtuellen Maschine bereitzustellen, die eine Replikation des Entwicklungs-Server ist und lassen Sie den Entwickler seine Arbeitskopie der Anwendung in der virtuellen Maschine ausführen.

  2. Wenn jeder Entwickler eine Unterdomäne auf dem Entwicklungsserver verwendet, z. john.project.com und checken ihre Arbeitskopie der App in die Verzeichnisse, auf die die Sub-Domain verweist.

  3. Verwenden Sie das Versionskontrollsystem, um Code zu checken, eine Änderung vorzunehmen, den Code zu übernehmen und dann auf dem Entwicklungsserver zu überprüfen (der auf den Kopf des Repositorys zeigt).

ich ein Nachteil 1 die zusätzliche Zeit erforderlich sehen kann die virtuellen Maschinen zu schaffen und sicherzustellen, dass die virtuellen Maschinen insync mit dem Entwicklungs-Server (auch die Notwendigkeit gehalten werden (?), Um den Entwickler Host kontinuierlich zu ändern Datei, um auf die virtuelle Maschine zu zeigen, nicht auf den Entwicklungsserver).

Ich sehe 2 möglicherweise ein Problem, wenn absolute URLs innerhalb der Website verwendet werden, es sei denn es gibt eine einfache Möglichkeit, die Konfiguration zu aktualisieren, um die neuen Subdomains auch zu verwenden.

3 ist am einfachsten einzurichten, ist aber ziemlich primitiv und es wird vermutlich ziemlich mühsam für einen Entwickler werden, den Code nach jeder Zeitänderung einzuchecken.

Wie haben die Benutzer von stackoverflow die Versionskontrolle bei Webentwicklungsprojekten verwendet und welche Methode/welcher Workflow war am effektivsten?

Bitte fügen Sie auch zusätzliche Methoden hinzu, an die ich nicht gedacht/gelesen habe.

Antwort

0

Sie scheinen eine andere Option weggelassen zu haben, die für die meisten ASP.NET .NET-Entwickler üblich ist.

4) Ziehen Sie den Quellcode aus dem Repository, entwickeln Sie ihn vor Ort erneut. Dies ist in Wirklichkeit derselbe wie der VM-Ansatz, nur keine VM. In ASP.NET verwenden Sie entweder IIS lokal oder den Visual Studio-Entwicklungsserver.

+0

Ich nehme an, das liegt daran, dass die Situation, an die ich dachte, LAMP + Nicht-LAMP-Entwicklermaschinen war. Aber 4) ist wahrscheinlich am besten für ASP.NET-Entwickler. –

+0

Ich dachte, Sie könnten gewesen sein, obwohl Sie keine LAMP-Tags zu der Frage hinzugefügt haben, so gab ich meine Antwort für die Vollständigkeit. Für ASP.NET habe ich nur 1, 2 oder 4 (meine 4) gesehen. VMs sind nützlich, wenn Sie mit Beta-Versionen von Visual Studio spielen möchten, ohne Ihre Hauptmaschine zu ruinieren, und manchmal verlangt die Unternehmenspolitik einen ähnlichen Ansatz wie 2. Noch eine interessante Frage, also +1 von mir. – RichardOD

0

Worüber Sie sprechen, ist nicht nur die Versionskontrolle, sondern auch ein Build Server.

Es hängt davon ab, welche Sprache Sie in schreiben, wenn es Java ist als CruiseControl- mit SVN/Github, wenn es C# ist dann Team Foundation Server oder CruiseControl.Net mit SVN/GitHub

meisten Versionskontrollsysteme werden es Ihnen ermöglichen, um zu verzweigen und zu fusionieren und dann Ihren Build Server zu verwenden, können Sie diesen auf jedem beliebigen Webserver bereitstellen. Das sollte Ihre separaten Entwickler-Subdomains aussortieren.

2

Versuchen Sie eine Kombination von 1 + 3.

# 1: Stellen Sie jedem Entwickler eine virtuelle Maschine zur Verfügung, die eine Replikation des Entwicklungsservers ist und der Entwickler seine Arbeitskopie der Anwendung in der virtuellen Maschine ausführen lässt.

Ich mag keine VMs - vielleicht nur, weil ich das gleiche Betriebssystem betreibe, auf dem der Server läuft. Das Aktualisieren und Synchronisieren ist eine Aufgabe, die ich selbst erledigen kann (einmal pro Woche: "installiere einfach Paket XYZ"). Jeden Monat können Sie eine VM zum Backup einfrieren (oder neuen Entwicklern geben).

Es ist die beste Methode für den Entwickler. Er muss nicht warten, bis ein Commit/Deploy stattfindet. Ändern Sie eine Codezeile, speichern Sie die Datei, drücken Sie F5 im Browser, fertig. Für beste Effizienz ist das der richtige Weg.

# 3: Verwenden Sie das Versionskontrollsystem zum Auschecken von Code, nehmen Sie eine Änderung vor, übergeben Sie den Code und überprüfen Sie ihn dann auf dem Entwicklungsserver (der auf den Kopf des Repositorys zeigt).

Ich würde wirklich empfehlen, einen Staging/dev-Server einzurichten. Jedes Mal, wenn jemand in die Versionskontrolle einsteigt, sollte der Server automatisch die neueste Version erhalten und den Webserver neu starten. So können sich andere Leute das laufende Produkt ansehen und Feedback geben.

+0

Ja, zusätzlich zu den Entwicklern, die VMs verwenden, war ein zusätzlicher Entwicklungs-/Staging-Server geplant. –

Verwandte Themen