2012-04-04 20 views
9

Podążam za radą w "Team Development with Visual Studio Team Foundation Server" na structuring projects i sharing code from one team project into another using branching. Dlatego nasze drzewo źródłowe wygląda następująco:Nie można zagnieździć gałęzi TFS, więc rozgałęzianie w celu udostępnienia kodu nie działa?

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

A przynajmniej tak powinno być.

Jak widać, jak również rozgałęzienia w niektórych wspólnych kodu, używamy również oddziału na użytkownika historii.

Problem polega na tym, że gdy próbuję rozgałęzić folder współdzielony z projektu współdzielonego (nazwa oddziału źródłowego: $/udział/udział, nazwa oddziału docelowego: $/projekt1/główny/udział), pojawia się błąd:

TF203028: You cannot create a branch at $/Project1/Main/share because a branch already exists at $/Project1/Main.

Udokumentowane jest, że nie można zagnieżdżać gałęzi w systemie TFS, więc błąd nie jest zaskakujący. Wygląda więc na to, że jestem pomiatany, a książka rozwoju zespołu jest błędna. (Książka sugeruje, że to powinno zadziałać.)

Ale pozory mogą być zwodnicze i bardziej prawdopodobne jest, że się mylę niż autorzy książki. Czy ktoś może mi pomóc zrozumieć, jak to naprawić?

(Jednym z oczywistych rozwiązań byłoby uczynienie z korzeni gałęzi fabularnych raczej rodzeństwa, a nie rodzica, ale nie będzie to dla nas przydatne, ponieważ oznaczałoby, że nie będziemy w stanie dokonać zmiany w kodzie współdzielonym w gałęzi historii, która raczej niszczy obiekt odgałęzienia na historię, oznaczałoby to również dość olbrzymią liczbę ścieżek zmieniających pracę w projektach.)

Odpowiedz

5

Znalazłem rozwiązanie.

TFS pokazał ikonę oddziału w stosunku do Project1 \ Main, a nie ikonę folderu. Poszedłem do File>Source Control>Branching and Merging>Convert to Folder i przekonwertowałem go z powrotem do folderu. Byłem wtedy w stanie podzielić się udział w Project1.

Dziwnie, Main jest wciąż punktem, z którego powstają gałęzie, a gałęzie te wciąż istnieją.

Prawdziwe rozwiązanie polegało na tym, że musiałem stworzyć miejsca, w których wspólny kod został rozgałęziony do normalnych folderów projektu, a nie ikona oddziału. Poszedłem do File>Source Control>Branching and Merging>Convert to Folder i przekonwertowałem go z powrotem do folderu. Mogłem wtedy tworzyć gałęzie z Main.

Oddział główny i gałęzie opowieści zachowały swoje ikony oddziałów. share teraz wygląda jak zwykły folder.

+2

Możesz użyć rozszerzeń TFS Source Control Explorer do rozgałęzienia do folderu, co zasadniczo pozwala ci robić, co chcesz. http://visualstudiogallery.msdn.microsoft.com/c6642e7f-1a58-4ff0-aef9-0322dcc2b28d – jessehouwing

Powiązane problemy