Showing posts with label Team Foundation Server. Show all posts
Showing posts with label Team Foundation Server. Show all posts

04/12/2013

Filtrowanie work item'ów

Home

Sądzę, że do wyszukiwania work item'ów z poziomu Visual Studio najczęściej stosowane jest zapytanie typu Flat List. Zasada użycia jest bardzo prosta, po prostu podajemy zestaw warunków na podstawie, których chcemy przefiltrować WI np.:

zwróć mi WI typu bug, w projekcie X

W wielu wypadkach to wystarcza, ale ten typ zapytania ma jedno zasadnicze ograniczenie, nie uwzględnia relacji pomiędzy WI.

W tej sytuacji z pomocą przychodzą dwa pozostałe, mniej znane, typy zapytań czyli: Tree of Work Items oraz Work Items and Direct Links. Pierwsze pozwala do zapytania dodać warunki na powiązane WI (ale tylko te powiązane relacją rodzic-dziecko) np.:

zwróć mi WI typu bug, w projekcie X
+
oraz powiązane z nimi WI przypisane do osoby Z

Drugi z wymienionych typów, ma takie same możliwości, plus dodatkowo pozwala filtrować powiązane WI na podstawie rodzaju powiązania np.:

zwróć mi WI typu bug, w projekcie X
+
oraz powiązane z nimi, relacją Affected By, WI przypisane do osoby Z

To daje już dużo większe możliwości, ale niestety w ten sposób możemy badać tylko jeden poziom hierarchii WI. Twórcy Team Explorer'a mają się więc gdzie wykazać.

01/12/2011

Problem z półką

Home

Jakiś czas temu próbując wykonać operację merge w TFS napotkałem na bardzo irytujący problem pod tytułem:

TF203015 The Item '' has an incompatible pending change.

Nie robiłem nic bardzo skomplikowanego. Najpierw pobrałem do gałęzi A zmiany umieszczone na półce (ang. shelve). Następnie, przy pomocy polecenia merge, chciałem do nich dodać zmiany z changeset'a z gałęzi B i w tym momencie pojawił się powyższy komunikat. Sprawdziłem też odwrotną kolejność czyli najpierw merge z gałęzi B do A, a potem pobranie kodu z półki ale błąd również wystąpił. Innymi słowy, zamiast zgłosić konflikt i umożliwić jego rozwiązanie TFS wypiął się i rzucił błędem.

Nie chciałem wykonywać "ręcznego" łączenia plików ponieważ to błędogenne i niewygodne. Zacząłem szukać rozwiązania i znalazłem sposób na obejście problemu. Daleki od ideału, ale lepszy rydz niż nic. Postąpiłem w następujący sposób:
  • Zainstalowałem Team Foundation Server Power Tools
  • Najpierw wykonałem operację merge z gałęzi B do gałęzi A.
  • Uruchomiłem Visual Studio 2010 Command Prompt.
  • Przeszedłem do katalogu z gałęzią A.
  • Wpisałem komendę tfpt unshelve
  • Wybrałem swoja półkę.
  • Rozwiązałem konflikty.
Jak widać jeśli korzystamy z komendy tfpt to zamiast otrzymać błąd dostaniemy listę wykrytych konfliktów i możliwość ich rozwiązania. Można? Ano można.

28/12/2009

BadImageFormatException i TFS

Home

Przed paroma dniami zainstalowałem na swoim komputerze najnowszą wersję serwera TFS czyli Microsoft Visual Studio Team Foundation Server 2010 Beta 2. Instalacja przebiegła szybko i bezproblemowo z dokładnością do tego, że wcześniej musiałem jeszcze zainstalować SQL Server 2008 oraz, co trochę dziwne dla mnie, najnowszy Service Pack dla systemu Windows Vista.

Kiedy instalacja dobiegła końca uruchomiłem konsolę Team Foundation Administration Console, dalej użyłem kreatora konfiguracji i pomyślałem, że będę mógł się cieszyć nową zabawką. Niestety próba podłączenia się do serwera, czy to z poziomu VS 2010 czy to z poziomu programu Microsoft Test and Lab Manager, kończyła się błędem Unable to connect to Team Foundation Server.

Próbując rozwiązać problem dotarłem do systemowego logu zdarzeń. Tam znalazłem kilka podejrzanie wyglądających zdarzeń, których źródło nazywało się TFS Services. Aby upewnić się co do ich pochodzenia zatrzymałem pulę aplikacyjną Microsoft Team Foundation Server Application Pool, do której należą usługi TFS. Odczekałem chwilę i ponownie ją uruchomiłem. Zaglądam ponownie do logu zdarzeń i znajduję serię 3 komunikatów, których czas wystąpienia zgadzał się z czasem uruchomienia puli aplikacyjnej. Dwa pierwsze komunikaty miały źródło o nazwie TFS Services, a trzeci ASP.NET 4.0.21006.0. W trzecim komunikacie znalazłem interesującą informację o wystąpieniu nieobsłużonego wyjątku BadImageFormatException.

Jeszcze chwila szukania i znajduję rozwiązanie. Okazało się, że błąd był spowodowany nieprawidłową konfiguracja wspomnianej puli aplikacyjnej Microsoft Team Foundation Server Application Pool. Miała ona włączoną opcję Włącz aplikacje 32 bitowe podczas gdy ja korzystam z wersji 64 bitowej. Po wyłączeniu tej flagi problem ustąpił i wszystko zaczęło działać.