2009-08-07 15 views
4

Wir haben unter Versionskontrolle (SVN) eine Webanwendung. Der Stamm enthält immer die neueste gute Version der Website.Versionskontrolle und Website-Verzweigung

Ich würde gerne hören, wie andere Teams mehrere Versionen der gleichen Website verwalten und wie veröffentlichen Sie verschiedene Versionen für UAT, Tests, Bugfixing, Erweiterungen usw.?

Nehmen wir an, unsere Business-User kommen und wollen ein neues Feature ... Also, was wir tun, ist eine neue Filiale für unsere Entwickler. Wie sollte ich die Filiale veröffentlichen, ohne die Haupt-Dev-Website zu beeinflussen? Sollten wir jeden Zweig der Website an eindeutigen Ports veröffentlichen?

http://DevServer:80 = Trunk
http://DevServer:8081 = Zweig 001
http://DevServer:8082 = Zweig 002
http://DevServer:8083 = Zweig 003
http://DevServer:8084 = Zweig 004

Obvisouly würden wir auch die Projektdateien zu unqiue Verzeichnisse bereitstellen müssen und haben IIS korrekt zugeordnet.

Ist dies eine allgemeine Methode? Was sind die besten Praktiken?

Antwort

1

Die RedBean book (kostenlos) gibt eine hervorragende Beschreibung der Verzweigung. Obwohl das Buch auf SVN abzielt, gilt die Beschreibung der Verzweigungsstrategie für alle. Eine weitere gute freie Ressource ist das Microsoft Team Foundation Server Branching Guidance Whitepaper. Es copvers:

  • parallele Entwicklung
  • Abzweigset
  • Defined
  • Erstellen Isolation in Team Foundation Server
  • Allgemeine Branching Struktur Guidance
  • Branching Strategien
  • weite Bereiche der Isolation Branching
  • Ihre Erstellen Verzweigungsstrategie
  • Def ining Ihren Code Promotion Modell
  • Eigenschaft Crews: Wie Microsoft Does It
  • End-to-End Implementierung Szenario
+1

Ich glaube nicht, dass das OP ein Problem mit Subversion hat. (Es ist ein Ablenkungsmanöver auf die eigentliche Frage) –

+0

Wie ich in der obigen Antwort sagte; das Redbean-Buch enthält Hinweise zu Verzweigungs-Starts, die nicht nur auf SVN anwendbar sind .... –

6

Idealerweise sollten Sie eine separate Maschine für jede Umgebung (Produktion, uat, test, laufen dev & ci). Wenn Sie nicht über die Ressourcen für tatsächliche physische Computer verfügen, ist die Virtualisierung der Weg für die nicht produktiven Umgebungen.

Dies bedeutet auch, dass Sie die Auswirkungen der verschiedenen Abhängigkeiten und Bibliotheken, die Sie verwenden, richtig testen können.

EDIT: Über Verzweigung ...

Was wir hier machen, und in ein paar Orte, die ich vor eine Integrationszweig haben aus dem Stamm gearbeitet habe. Entwickler, die neue Funktionen entwickeln, verzweigen von der Integrationsbranche und integrieren sich in die Integrationsbranche. Das CI erfolgt sowohl in der Integration als auch in der Amtsleitung. Informelle Tests können bei der Integration durchgeführt werden, aber formalere Tests (UAT-Releases) kommen aus dem Trunk.Periodisch integrieren wir uns aus dem Integrationszweig in den Stamm. Dies hat den zusätzlichen Vorteil, den Stamm zu schützen.

dh

trunk 
    integration 
    feature1 
    feature2 
+1

+1. für die Virtualisierungsoption ... –

1

Um die verschiedenen Zweige zu verschiedenen Häfen einzusetzen ist eine Lösung, in der Java-Servlet-Umgebung die Lösung die Zweige auf unterschiedlichen Wegen zur Karte wäre einfacher, (ich weiß nicht, ob das gilt für IIS auch):

Beide Lösungen sollten gut funktionieren. Wenn keine anderen Anforderungen, würde ich die Lösung wählen, die mit der verwendeten Technologie einfacher einzurichten und zu pflegen ist.