TFS-Verzweigung, was sind die Vorteile

7

Ich bin ziemlich neu in TFS und Quellcodeverwaltung. Ich kann den Vorteil der Verzweigung nicht verstehen. Da ich das gleiche Zeug machen kann, indem ich 2 Ordnerhaupt und -entwicklung erstelle, wenn ich mit Entwicklung fertig bin. Ich kann den Code unter Verwendung irgendeines Diff-Werkzeugs mit dem Hauptzweig zusammenführen.

Was ist dann der Sinn von Zweigen? Ich weiß, dass es einen großen Vorteil geben muss, aber ich kann es nicht verstehen.

    
Gainster 01.06.2011, 23:35
quelle

2 Antworten

33

(UPDATE: TFS unterstützt jetzt git für die Versionskontrolle, so dass der Rest dieser Antwort nicht länger gilt)

Ich würde Branch per Feature googlen.

Der Hauptvorteil der Verzweigung besteht darin, dass Sie an einer Funktion arbeiten und nicht von der Arbeit anderer Personen unterbrochen werden können. Wenn Sie fertig sind, können Sie zusammenführen und sehen, ob viele Funktionen gut zusammenarbeiten oder nicht. Dies geschieht normalerweise, wenn das Feature entwickelt wurde, aber für kleine Features kann nach Abschluss des Features ausgeführt werden.

Der Vorteil ist, dass Sie eine klare Geschichte davon haben, was Sie getan haben, um etwas zu implementieren. Ohne Niederlassungen würden Sie viele Commits mit den Commits anderer Features gemischt haben. Wenn QA eine bestimmte Funktion nicht besteht, haben Sie Ihre Arbeit frei, um einen anderen Build zu erstellen, indem Sie nur die Commits für die anderen Funktionen verwenden. Die andere Alternative besteht darin, zu versuchen, Ihr Feature so zu reparieren, dass QA besteht. Dies ist möglicherweise an einem Freitagnachmittag nicht möglich.

Feature-Toggles sind eine andere Möglichkeit, die Arbeit wegzulassen, aber dies erhöht die Komplexität des Codes, und die Toggel können selbst Fehler enthalten. Das ist etwas sehr Müdes und sehen, wie dies zu einem "akzeptablen" Workaround wurde.

Zweige werden auch verwendet, um Änderungen an mehreren Versionsversionen zu verfolgen. Produkte, die von mehreren Kunden konsumiert werden, befinden sich möglicherweise in einer Situation, in der eine Gruppe von Kunden Version 1.0 des Produkts verwendet, während andere bereits 2.0 verwenden. Wenn Sie beide unterstützen, sollten Sie die Änderungen nach Zweigstellen verfolgen, die für sie bestimmt sind. Die vorhergehenden Punkte gelten noch immer für die Entwicklung für diese Branchen.

Nachdem dies gesagt wurde, ist TFS aus einer Reihe von Gründen bei Branch-pro-Feature nicht ideal. Das Größte ist, dass es keine 3-Wege-Zusammenführung unterstützt - es hat nur eine so genannte unbegründete Zusammenführung. Die Art und Weise, wie der Verlauf verfolgt wird, TFS kann Ihnen keinen gemeinsamen Vorfahren zwischen dem Feature-Zweig und dem Ort anzeigen, an dem Sie ihn zusammenführen möchten. Dadurch können Sie möglicherweise viele Konflikte lösen. Im Allgemeinen scheuen viele Menschen, die TFS verwenden, aus diesem Grund die Verzweigung.

3-Wege-Zusammenführungen sind großartig, weil sie Ihnen zeigen, was der gemeinsame Vorgänger ist, was Ihre Änderungen sind und was die Änderungen in dem anderen Zweig sind. Dadurch können Sie eine sehr fundierte Entscheidung darüber treffen, wie Sie einen Konflikt lösen können.

Wenn Sie TFS verwenden müssen, würde ich vorschlagen, git-tfs zu verwenden, um 3-Wege-Zusammenführungen und viele andere Funktionen nutzen zu können. Einige von ihnen gehören: rere, Rebasing, unzusammenhängendes Modell, lokale Geschichte, Halbierung und viele mehr.

Rebase ist sehr nützlich, da es Ihnen ermöglicht, ein Feature auf einem anderen Startpunkt zu basieren, Commits wegzulassen, Commits zusammen zu setzen, Commits zu splitten usw. Sobald Sie fertig sind, können Sie sie in einen Integrations- oder Release-Zweig zusammenführen über den Workflow entscheiden Sie.

Mercurial ist auch ein anderer, der vielleicht einfacher zu benutzen ist, aber auf lange Sicht nicht so mächtig sein wird.

Wenn Sie die Gelegenheit haben, würde ich sehr empfehlen, weg von TFS für die Quellcodeverwaltung wegen einer Menge von Einschränkungen im Vergleich zu modernen DVCS.

Hier finden Sie eine Reihe nützlicher Richtlinien, wenn Sie die Verzweigung / Zusammenführung effektiv verwalten möchten:

Ссылка

Hoffe, das hilft.

    
Adam Dymitruk 01.06.2011, 23:47
quelle
4

Es gibt viele Informationen zu lesen, aber es gibt TFS Branching Guidance hier, wenn es überhaupt hilft - Ссылка

    
Rob Gibbens 02.06.2011 18:01
quelle