fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
4 minut

Jak usprawniłem swoją pracę z TFS


26.01.2012

Jeżdżę sobie ostatnio po TFSie jak Heniek po łysej kobyle, ale żyć z tym trzeba. Poniżej kilka tipów, które uczyniły moje życie trochę lepszym. Z przeogromną wdzięcznością poczytam w komentarzach kolejne sugestie dotyczące dalszych uproszczeń.

1. git-tfs

https://github.com/git-tfs/git-tfs

Ten projekcik zdecydowanie na pierwszym miejscu. Ale ostatnio o nim się osobno rozpisałem.

2. Telerik TFS Work Item Manager

http://www.telerik.com/agile-project-management-tools/tfs.aspx

Narzędzie mające pełnić rolę alternatywy dla VS. Jest darmowe, jest w becie, jest strasznie wolne (dużo wolniejsze niż VS!), ale pozwala na dwie bardzo przydatne rzeczy. Po pierwsze: na edycję wielu tasków naraz. Po drugie: oferuje dość fajny ekran do planowania iteracji. W skrócie: wybieramy iterację, którą będziemy planować, potem typ workitemów do porozrzucania, następnie atrybut użyty do zliczania "pracochłonności", a na koniec ustalamy sumę wartości owego atrybutu dostępną podczas iteracji. Po takiej konfiguracji możemy dragiem i dropem poprzepisywać wybrane itemy do iteracji, ciągle monitorując jej "zapełnienie". Daleko temu rozwiązaniu do ideału, ale i tak jest wygodniejsze niż robienie tego samego w VS lub Excelu.

3. "Compare" zamiast "Open" w oknie zmian

Po wciśnięciu shift+enter zamiast enter otwiera się "compare…" a nie cały plik. Life saver.

4. Zmiana zachowania doubleclick w oknie zmian

Punkt 3. to dla mnie za mało, chciałem mieć "compare…" jako domyślną akcję dla double click oraz enter. Okazało się, że się da.

Ale musimy zmodyfikować rejestr:

Path: HKCU\Software\Microsoft\VisualStudio\<ver>\TeamFoundation\SourceControl\Behavior 
Value: DoubleClickOnChange (DWORD)
0 == view as the primary command (default) 
1== compare as primary command

(za http://www.richard-banks.org/2010/07/how-to-double-click-to-diff-pending.html)

5. Zastąpienie diff/merge tool

Tools -> Options -> Source Control -> Visual Studio Team Foundation -> Configure User Tools. Ja wpisałem tam sobie ulubiony TortoiseDiff (tylko po instaluję TortoiseSVN).

Bez tego… cusz, ani rusz.

(za http://fooberry.com/2008/10/24/replacing-tfs-diff-tool/)

6. Team Foundation Server Power Tools

http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Znowu: bez tego żyć się nie da. A w szczególności:

  • alerts explorer (right click na root) – skonfigurowałem tak, żeby dostawać maile o jakichkolwiek zmianach w moim projekcie – dzięki temu nie muszę sam wchodzić do TFS co jakiś czas i sprawdzać czy coś się zmienilo… czyli push vs pull notifications :) ; co prawda BARDZO mi brakuje "inteligentnych" powiadomień znanych w każdego właściwie innego systemu (typu "Tester 1 has assigned you a new bug", "Developer 1 has finished a feature" itd), ale może znajdzie się i na to jakiś plugin… albo może w któryś weekend "sam się napisze"
  • work item templates – szablony do edycji wielu wierszy naraz, niezbyt wygodne ale czasami niezastąpione
  • integracja z shell – do ctx menu dodają się jakieś opcje, ale w sumie ich nie używam (z powodu pkt 1. w tym poście)

7. Separacja "project management" od kodowania w IDE

W miarę możliwości wychodzę z proj mgmt poza VS. Tak jest o wiele wygodniej – w moim "koderskim" VS mam otwarte tylko pliki z kodem, a wszystko inne wyrzucam na zewnątrz. Połączenie tych dwóch aktywności w jednym narzędziu to jakaś porażka…

Próbowałem TFS Web Access – strasznie wolne. Wspomniany Telerik – strasznie wolny. Na chwilę obecną najbardziej wydajnym/wygodnym rozwiązaniem okazuje się druga instancja VS, dedykowana dla TFSa. O wiele bardziej wolałbym jakieś szybkie, intuicyjne UI w przeglądarce, ale póki co – nie mam. Może w kolejnej wersji będzie to wyglądało lepiej, skoro będzie ona stała na Sharepoincie 2010 a nie 2007?


Dzięki tym krokom z TFSem… nawet jakoś da się żyć. Co prawda nie jest to życie idealnie, ale nie jest bardzo źle. Po zastąpieniu kontroli wersji gitem, co jest krokiem zdecydowanie w całej procedurze najważniejszym, zostajemy tak naprawdę ze znośnym (choć czasem mega-denerwującym, ale mnie każdy soft czasami mega-denerwuje) narzędziem do operacji CRUD na obiektach "task".

Mam nadzieję, że komuś to pomoże. I że pod spodem coś ciekawego jeszcze podrzucicie:).

0 0 votes
Article Rating
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
procent
12 years ago

pawelek,
Thx. Jak widać nie ma co czekać z przesiadką na gita, chyba że mamy duuużo czasu. Pewnie przynajmniej ze 2 lata zanim dvcs pojawi się w TFS, i kolejne 2 zanim będzie go się dało bezboleśnie używać:).

SheGe
SheGe
12 years ago

Odnośnie punktu 7. Nie korzytałem, ale ostatnio się natknąłem: https://tfspreview.com/. Wydaje mi się, że warto zobaczyć sam filmik i poddać rozwiązanie własnej ocenie.

Biegał
12 years ago

Apropo pkt 5.

Można ściągnąć samego TortoiseDiff jako standalone.
Nie wiem natomiast, czy jest to dokładnie ta sama wersja co w instalatorze.
http://sourceforge.net/projects/tortoisesvn/files/Tools/1.6.7/

swieka
swieka
12 years ago

Odnośnie project management to wystarczającym wydaje się być spięcie TFS z MS Projectem – Rozpisanie różnych funkcjonalności w WBS i wysłanie jako WorkItemyśledzenia na bieżąco.
Co więcej rozbicie zadania na podzadania pozwala (a wręcz wymusza):
1) developerowi na zastanowienie się nad zadaniem.
2) managerowi na śledzenie postępu prac (check-iny na podzadania)
Dodatkowo można tak zmodyfikować szablon WorkItemu, żeby miał np pola do estymowanego czasu, ale i realnie zużytego. Od ręki mamy ogromną bazę wiedzy pozwalającą na dokładniejsze estymowanie w przyszłości.

Generalnie odnoszę wrażenie z Twoich wpisów, że robisz wszystko, żeby nie używać TFS, zamiast dopasować go do swoich potrzeb. Narzędzia są dla ludzi, a nie ludzie dla narzędzi! A TFS (mimo wielu wad – ale które oprogramowanie ich nie ma) jest potężny i elastyczny.

procent
12 years ago

swieka,
Akurat nie robię NIC aby nie używać TFSa, ponieważ nie mam na to wpływu. Używam i staram się jak najbardziej podnieść swoją produktywność w zaistniałej sytuacji. Nie chcę mieć nic wspólnego z tfsową kontrolą wersji, ponieważ jest to najgorsze rozwiązanie tego typu z jakim miałem do czynienia, ale z tym sobie poradziłem – i o tym pisałem.
Do rozbicia zadań na podzadania nie jest potrzebny msproject, wszelkie metody zarządzania zadaniami można stosować i w pliku txt wersjonowanym razem z projektem. Ja odnoszę się do wygody użytkowana tfsa i chcę ją podnieść do akceptowalnego poziomu.

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również