Frage

Wir planen, ab bald ein ASP.NET -Web -API -Projekt zu entwickeln. Für die Quellensteuerung verwenden wir SVN. Wir folgen in der Regel dem Muster, dass der Stamm stabil ist und alle unsere Arbeiten in den Zweigen erledigt.

Meistens haben wir das Glück, dass ein Entwickler an dem Projekt arbeitet. Für dieses Web -API -Projekt gibt es mindestens zwei, möglicherweise drei Entwickler, die an verschiedenen Teilen arbeiten. Damit meine ich, dass man möglicherweise an einer Reihe von Controllern für die Arbeit mit Dokumentmodellen arbeitet, während der andere Entwickler an einem Controller oder Controllern für die Benutzerauthentifizierung und Wartung arbeitet.

Angesichts der Tatsache, dass diese beiden keine überlappenden Arbeiten haben sollten, welche Vorteile/Nachteile für beide Entwickler an einer einzigen Filiale mit täglichen "Updates zur neuesten Version" arbeiten, um beide Kopien konsistent zu halten, im Vergleich zu jedem Entwickler, der an einer einzelnen Niederlassung arbeitet und die beiden Zweige zurückführen in den Kofferraum, wenn sie vollständig sind?

Es scheint mir, dass ein einzelner Zweig insofern besser wäre, als die täglichen Updates jeden Entwickler über das aufrechterhalten, was der andere tut, und dies kann möglicherweise dazu beitragen, Code zu teilen. Mein Hauptanliegen ist die Durchführung von Versuchs- und Fehlercodierung. Was passiert, wenn ein Code begangen wird, der wahrscheinlich nicht vom anderen Entwickler heruntergezogen werden sollte? Sollte das überhaupt ein Problem sein?

Ein weiterer Gedanke, der ich hatte, war, dass jeder Entwickler seinen eigenen Zweig hatte, wenn der entweder der Entwickler Code hat, den der andere verwenden kann, der stabil genug ist, das wir zum Kofferraum zurückführen. Dann würden die Entwickler stattdessen täglich aus dem Kofferraum aktualisieren.

Schließlich hatte ich den Gedanken, dass wir vielleicht einen Zweig für dieses "Feature -Set" und dann jeden Entwicklerzweig aus diesem Zweig erstellen. Sie würden dann stabile Funktionen zurück in die Hauptzweig bringen und täglich von der Hauptzweigung aktualisieren. Dies würde den Kofferraum sauber und stabil halten, bis das Feature -Set veröffentlicht wird.

Das sind meine Gedanken und Entschuldigung für die lange Frage. Ich möchte dieses Projekt wirklich richtig beginnen und jede Anleitung wäre sehr geschätzt.

War es hilfreich?

Lösung

Verwenden Sie einfach einen Zweig und komplizieren Sie keine einfachen Dinge. Konfigurieren Sie den CI -Server und führen Sie Unit -Tests nach jedem Commit aus. Zwei Programmierer in einer Niederlassung sind überhaupt kein Problem. Wir haben sechs Programmierer und es gibt keine Probleme. Vor welchen Problemen haben Sie Angst? Ich verstehe wirklich nicht.

Sie können auch über "Rumpfentwicklung" lesen. Es heißt, Sie sollten Ihre lokalen Zweige nicht erstellen und stattdessen an Kofferraum arbeiten. Es funktioniert für viele Teams!

Andere Tipps

Wenn ich sehe, dass die beiden Entwickler keine überlappende Arbeit haben sollten, kann ich mir nicht vorstellen, welchen Vorteil es gibt, aus einem gemeinsamen Zweig zu arbeiten, anstatt in getrennten, einzelnen Zweigen zu arbeiten. Wenn sich die Arbeit nicht überlappt, scheint die Arbeit in getrennten Zweigen eine natürliche Lösung zu sein, die dem Design der Subversion übereinstimmt. Die Arbeit aus einem gemeinsamen Zweig scheint inzwischen ein Rezept für tägliche Zusammenführungskonflikte, insbesondere böse Baumkonflikte zu sein. Nicht zu gut darauf zu setzen, aber mehrere Entwickler aus einer einzigen Zweigstelle zu haben, scheint den Zweck der Versionskontrolle zu besiegen.

Für Statusaktualisierungen ist die Verwendung eines Tools, das Änderungen in einem Newsfeed verfolgt, hilfreich. Viele sind sowohl zur internen Einrichtung als auch über einen Cloud-basierten Dienst verfügbar. Diese arbeiten oft mit oder sind Teil eines kontinuierlichen Integrationssystems, das Sie auch untersuchen könnten.

Mein Hauptanliegen ist die Durchführung von Versuchs- und Fehlercodierung. Was passiert, wenn ein Code begangen wird, der wahrscheinlich nicht vom anderen Entwickler heruntergezogen werden sollte? Sollte das überhaupt ein Problem sein?

Ja, es ist definitiv ein Problem. Aber Sie werden dieses Problem haben, egal welche Methodik/Technologie Sie verwenden. Entwickler sollten nicht "Versuch und Irrtum" -Codierung verpflichten - was auch immer das ist :) Wenn Sie nicht möchten, dass Ihr Code von anderen Entwicklern heruntergezogen wird, begehen Sie ihn nicht.

Wie Peri sagte - Verwenden Sie einen Zweig und komplizieren Sie die Dinge nicht und es wird in Ordnung. Wenn der Code nicht kompiliert/läuft, verpflichten Sie ihn nicht.

Wenn mehrere Entwickler an derselben Filiale arbeiten, müssen sie Änderungen direkt zu ihrer nicht verbindlichen Arbeitskopie zusammenschließen. Das bedeutet, dass SVN nicht helfen kann, alle Arbeiten, die sie seit dem vorherigen Commiting geleistet haben, mit der Zusammenführung etwas schief zu machen.

Zusammenführen von mehreren Zweigen können immer noch schief gehen - Aber zumindest ist die gesamte Arbeit bereits begangen, so dass das Zurückrollen und die Wiederholung der Zusammenführung möglich ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top