2011-01-11 7 views
2

Ich bin in SCM und arbeite mit einer Vielzahl von Tools (Subversion, Clearcase, TFS, Perforce) und Technologien (.NET, Java meist). Bevor ich mit der Arbeit begann, bestand die normale Aufgabe darin, eine kontrollierte Niederlassung zu schaffen.Sind kontrollierte/fördernde Filialen wertvoll?

Ich definiere kontrollierten Zweig als: -Ein separater Zweig, der promoved-Code enthält, auf den Entwickler nicht zugreifen können. Nur ein Team von Bauingenieuren hat Zugriff darauf.

Kontrollierter Build: -Build-Engine, die Code aus kontrollierten Zweig nimmt und ein Artefakt erzeugt, das Entwickler nicht modifizieren können.

Als Ergebnis wurde die Zusammenführung in diesen Zweig zu einem wichtigen Schritt im Rahmen eines kontrollierten Build-Prozesses. Dies kann sowohl Probleme mit Geschwindigkeit als auch mit Fehlern verursachen (die größtenteils durch Automatisierung gemildert werden).

Vorteile: Automatische Code Lock Zweignamen können (da Devs nicht ändern Zweig) unterschiedlich sein (andere Teams folgen nicht unbedingt standardisierte Praktiken, und wir sind nicht unbedingt in der Lage, den erforderlichen Druck auszuüben.) einfach Art und Weise genauen Version Codezustand, um herauszufinden, (dh neuester Code in gesteuerten Zweig für eine Version ist, was prod ging)

Nachteile: Geschwindigkeit Matching dev baut mit kontrollierten baut, wenn Probleme mit den Entwicklern diskutieren (dies automatisiert ist, aber ein wenig unordentlich). Fehler (ein anderer Ort, an dem es zu Fehlern kommt) Kann die Sicherheit/Rollentrennung vollständig mit Änderungslisten/Changesets/unveränderlichen Labels gehandhabt werden?

Fragen:

Soll ich von der aktuellen gesteuerten Zweig Strategie empfehlen zu verschieben? Fehle ich andere Vorteile?

Antwort

3

Ich würde nicht empfehlen, Zweige als Werbemechanismus zu verwenden, es sei denn, Sie beabsichtigen, viele Änderungen von dem Label vorzunehmen, das zu besagtem Zweig zusammengeführt wird.
A branch should isolate a development effort (dh etwas, wo Dateien und neue Versionen verpflichtet geändert werden)

ein Aufkleber im Zusammenhang mit irgendeiner Art von Metadaten (Clearcase-Attribute, SVN Eigenschaften, Git Notizen, ...) sollte ausreichen, um die überwachen Förderung dieses Labels (mit seinem unveränderlichen Inhalt) durch die verschiedenen Promotion-Levels.

0

Wir verwenden einen kontrollierten Zweig (MAIN) als unseren offiziellen Build-Zweig. Entwickler dürfen den Zugang zu dieser Zweigstelle nur durch Zusammenführen aus der Entwicklungsabteilung erhalten. Darüber hinaus wird der MAIN-Zweigstellencode mit einer BUGFIX-Zweigstelle zusammengeführt, die Bugfixes für unsere aktuelle Version von Software gewidmet ist, und eine PROD-Zweigstelle, in der der Code für jede Version veröffentlicht wird.

Ich bin der Meinung, dass alles, was zum Testen (und letztlich) zu Produktionszwecken gebaut werden soll, keinen zufälligen Entwicklerzugriff haben sollte und von einem SCM-Manager oder einer anderen Art von Bibliotheksfunktion verwaltet werden sollte.

Wenn wir Probleme mit Builds in unserer MAIN-Zweigstelle haben, bestehen wir auch darauf, dass diese Fehler von den Entwicklern in der Entwicklungsabteilung behoben werden und die Auflösung innerhalb unserer SCM-Richtlinien wieder in MAIN zusammengeführt wird.