2012-04-04 3 views
9

Ich habe den Rat in "Team Development with Visual Studio Team Foundation Server" auf structuring projects und sharing code from one team project into another using branching befolgt. So sieht unser Quellbaum so aus:TFS-Zweige können nicht verschachtelt werden, sodass die Verzweigung zum Freigeben von Code nicht funktioniert?

server\instance 
    Shared 
    share 
    Project1 
    Main 
     Product1 
     share (branched into Project1 from Shared) 
    Stories 
     1607 
     1832 

Oder zumindest sollte es.

Wie Sie sehen können, verzweigen wir auch in einigen gemeinsamen Code, verwenden wir auch Zweig pro Benutzer-Geschichte.

Das Problem ist, wenn ich versuche, im Freigabeordner aus dem freigegebenen Projekt (Quelle Branch Name: $/Shared/share; Ziel Branch Name: $/Project1/Main/share) verzweigen, bekomme ich den Fehler:

Es ist dokumentiert, dass Sie Verzweigungen in TFS nicht verschachteln können. So scheint es, dass ich gescheitert bin und das Team Development Buch falsch ist. (Das Buch impliziert, dass dies funktionieren sollte.)

Aber der Schein trügt und ich liege eher falsch als die Autoren des Buches. Kann mir jemand helfen, das zu beheben? Eine naheliegende Lösung wäre, die Wurzel der Geschichte zu einem Geschwister des Anteils zu machen statt zu einem Elternteil, aber das wird uns nichts nützen, weil es bedeuten würde, dass wir es nicht schaffen könnten Änderungen am geteilten Code in einem Story-Zweig, der eher das Objekt der Verzweigung pro Story vereitelt. Es würde auch eine ziemlich kolossale Menge an Arbeitswegen in den Projekten bedeuten.)

Antwort

5

Ich fand die Lösung.

TFS zeigte ein Zweigsymbol gegen Project1 \ Main anstelle eines Ordnersymbols. Ich ging zu File>Source Control>Branching and Merging>Convert to Folder und wandelte es zurück in einen Ordner um. Ich konnte dann die Freigabe in Project1 verzweigen.

Seltsamerweise ist Main immer noch ein Punkt, von dem Geschichte Zweige gemacht werden, und diese Zweige existieren noch.

Die wirkliche Lösung war, dass ich die Orte, wo der geteilte Code in die normalen Ordnern des Projekts verzweigt wurde, statt das Zweigsymbol machen musste. Ich ging zu File>Source Control>Branching and Merging>Convert to Folder und wandelte es zurück in einen Ordner um. Ich konnte dann Abzweigungen von Main erstellen.

Die Filiale von Main, und die Story-Filialen behalten ihre Zweig-Icons. share sieht jetzt wie ein gewöhnlicher Ordner aus.

+2

Sie können die TFS-Quellcodeverwaltungsexplorer-Erweiterungen verwenden, um in einen Ordner zu verzweigen, wodurch Sie im Grunde genommen das tun können, was Sie möchten. http://visualstudiogallery.msdn.microsoft.com/c6642e7f-1a58-4ff0-aef9-0322dcc2b28d – jessehouwing

Verwandte Themen