Rozwiązywanie konfliktów z VS 2010

22
sie/09
0

conflict

W tym odcinku poopowiadamy sobie o rozwiązywaniu konfliktów przy okazji najnowszej wersji Visual Studio. No bo o czym innym mógłby być wpis, opatrzony takim uroczym obrazkiem? :)

Nie będę się za bardzo rozpisywał, chciałbym tylko króciutko przedstawić nową funkcjonalność, jaka została przygotowana w “dyszce”.

W aktualnej wersji(bo w końcu 2010 jeszcze aktualna nie jest i pewnie jeszcze przez pewien czas nie będzie), gdy chcemy zrobić check-ina do source controla, to w przypadku jakiegoś konfliktu na plikach pojawia się “eleganckie” okienko zawierające wszystkie konflikty, które sobie możemy cierpliwie rozwiązywać. Super wygodne to nie jest, chociaż można się przyzwyczaić. Przypuszczam, że na podstawie feedbacku od użytkowników, stwierdzono w MS, że skoro jest to średnio wygodne, to należy coś poprawić. I tak powstał chocapic. I w ten sposób, w Visual Studio 2010 podczas check-inowania pliku dochodzi nam nowa pozycja, zatytułowana “Conflicts”(screen poniżej – polecam kliknąć i powiększyć).

 

 

Wylistowane mamy wszystkie pliki, w których zachodzi konflikt wraz z szybką możliwością ich rozwiązania(przyciski AutoMerge, Merge Changes In Merge Tool, Take Server Version, Keep Local Version). Naturalnie możemy użyć przycisku(lub jak kto woli – klawisza) AutoMerge All, który rozwiąże to, co da radę sam, a to czego nie da – zostawi nam do załatwienia ręcznego.
Bardzo ważne jest to, że funkcjonalność ta nie jest zależna od wersji TFS - sprawdziłem działanie z TFS2008 i działało tak samo dobrze.

I jeszcze jedna ciekawostka - Ręka w górę, kto w aktualnej wersji, klikając AutoMerge All ma zawsze pewność, że automat zrobi wszystko ok? :) No właśnie, ja też czasem sie zastanawiam co on tam nawywija ;) Nowe Visual Studio(a w zasadzie Team Explorer) pozwolą na określenie jakie konflikty w jaki sposób rozwiązać. Okienko konfiguracji poniżej:

 

confl_sett

 

Podsumowując – dużych zmian w sumie nie ma, sam mechanizm pozostał ten sam(np. ręczne mergowanie plików). Jednak generalnie mała rzecz a cieszy :)



Work Itemy i MS Project, czyli problem z odświeżaniem dat

07
sie/09
0

header_imgJeśli zdarzyło Ci się kiedykolwiek importować zadania z TFS do Projecta, to ten post może być dla Ciebie. Jeśli kiedykolwiek zastanawiałeś się, dlaczego podczas importu standardowo gubione są ustawienia dat, to ten post z całą pewnością jest dla Ciebie! :-)

 

Na codzień pracuję z projectem i z niego publikuję zadania do TFS. Ostatnio kolega chciał zassać sobie do nowego pliku Projecta aktualne zadania, żeby mieć możliwość śledzenia, co się kiedy kończy i kiedy powinny być dostępne nowe funkcjonalności do testowania. I co się okazało?
Work Itemy oczywiście może pobrać, pobierze się ich długość(czas trwania), ale wszystkie ustawią mu się na starcie projektu – czyli standardowo na dzień utworzenia pliku. Dlaczego tak się dzieje? A dlatego, że mapowania TFS<->Project są tak skonfigurowane, że StartDate i FinishDate się mogą publikować na linii Project->TFS, ale nie odświeżają się na linii TFS->Project? I już :-)

Tak wyglądają zadania zaprojektowane w projekcie i wysłane do TFS:

 

project_norm

 

A tak wyglądają zassane do nowego projecta z TFS:

 

project_import

 

Co więcej, jeśli ściągniemy do Projecta Work Itemy, nic nie zmienimy i cykniemy Publish, to zgodnie z poprzednim zdaniem, uda się je zaktualizować na TFS, przy okazji przestawiając wszystkim daty wykonania :)) Cool, prawda?

Ale na szczęście…

… da się coś z tym zrobić. Trzeba zmodyfikować wspomniane domyślne mapowania. Służy do tego narzędzie TFSFieldMapping, instalowane razem z Team Explorerem(znajduje się w katalogu <X>:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE). Składnia jest następująca:

TFSFieldMapping upload|download <server_URL> <team_project> <file_path>

Pobrany niezmodyfikowany plik wygląda następująco:

 

 

Jak widać, pola Microsoft.VSTS.Scheduling.StartDate oraz Microsoft.VSTS.Scheduling.FinishDate mają ustawiony atrybut PublishOnly na “true”, co w efekcie powoduje działanie opisane powyżej. Wystarczy zmienić wartości w obu przypadkach na false, ponownie skorzystać z narzędzia TFSFieldMapping(tym razem używając opcji upload) i… work itemy pobierane z TFS będą poprawnie odświeżały swoje daty! :-)