Wir haben einen Client (der einen Client hat, der einen Client hat), der uns mit Change Requests zu einer Code Base (in PHP) verführt. Unsere erste Antwort war, einfach in einem Haupt-Trunk in SVN zu arbeiten, aber der Client kommt oft zurück und fordert, dass eine bestimmte Änderung so schnell wie möglich an die Live-Server weitergeleitet werden muss. Auf der anderen Seite werden andere Änderungen plötzlich in der Priorität reduziert, die ursprünglich (scheinbar) mit anderen Änderungen gruppiert wurden.Zweige für jede kleine Veränderung?
Wir denken über eine Verzweigung für jede Änderungsanforderung. Ist das verrückt? Welche anderen Lösungen könnten funktionieren?
Danke!
Bearbeiten: Das ist eine wirklich schwierige Frage, um die richtige Antwort zu wählen. Danke an alle für eure tollen Antworten.
Bearbeiten: Ich weiß, dass die beste Antwort, die ich wählte, nicht besonders beliebt war. Auch ich wollte eine technische Lösung für dieses Problem finden. Aber jetzt denke ich, dass, wenn der Kunde Software mit Funktionen wünscht, die in einer modularen Weise eingesetzt werden können ... sollte dieses Problem nicht in unserem Gebrauch des Versionskontrollsystems gelöst werden. Es müsste in die Software integriert werden.
Bearbeiten: Jetzt ist es fast einen Monat später und mein Kollege/Kunde hat mich davon überzeugt, dass mehrere Zweige der Weg zu gehen ist. Dies liegt nicht nur an der Unzurechnungsfähigkeit des Kunden, sondern auch daran, dass wir feststellen müssen, ob eine Funktion "bereit ist" oder "mehr Arbeit benötigt" oder was auch immer. Ich habe das SVN nicht bei mir, aber wir verschmelzen mit dem Ratschlag aus dem SVN-Kochbuch: Sie verschmelzen den Zweig von die Revision, die es in die Hauptversion verzweigt wurde.
Mit diesem System fusionieren wir auch alle Zweige an einem Punkt und das wird die neue QA und dann Live-Build. Dann verzweigen wir uns davon.
Letzte Änderung (Vielleicht): Monate später funktioniert dieses System noch für uns. Wir erstellen Filialen für jedes Ticket und haben selten Probleme. Auf der anderen Seite versuchen wir, die Dinge getrennt zu halten, was die Leute arbeiten ...
Zwei Jahre später: Wir verwenden jetzt GIT, und jetzt ist dieses System eigentlich ganz vernünftig.
ist das nicht, warum haben wir jetzt git? –
@Quintin Par, das Problem ist identisch, ob Sie Git (die wir jetzt sind) oder SVN (wie wir waren) verwenden. Die Frage ist, wie man Filialen für das Team/den Kunden organisiert. –
Verzweigen für jede kleine Änderung, unabhängig davon, ob Sie Änderungsanträge oder Tickets haben, oder wenn Sie gerade an Ihrem eigenen Projekt zu Hause arbeiten, ist eine großartige Möglichkeit, commit-all-little-change (in der Branche) und commit (fusionieren) -working-code-only (in trunk). Diese beiden kombinierten Muster halten das Stammprotokoll sauber, bieten jedoch detaillierte Informationen im Verzweigungsprotokoll. – clacke