Ten przeklęty TFS
W poprzedniej pracy do zarządzania zadaniami i wersjonowania kodu wykorzystywaliśmy Microsoftowego TFSa. Nie był to w zasadzie nasz wybór – po prostu firma z tego korzystała więc się musieliśmy dostosować. I chłonąłem tego TFSa przez trochę ponad dwa lata. Nauczyłem się jego workflow – czyli wrzucaj i pobieraj kod jak najrzadziej bo i tak za każdym razem trzeba będzie rozwiązywać konflikty i naprawiać dziwactwa, które w tym procesie powstały. Dlatego jeden commit dziennie, albo nawet tygodniowo nie był niczym dziwnym.
Mam też teraz projekt, który robię „na boku”, w domu. Zafascynowany łatwością używania TFSa w pracy (dwa kliknięcia, kilka przekleństw i mamy kontrolę wersji!) również ten projekt podpiąłem pod serwer TFS. Wybór był na moje nieszczęście łatwiejszy o tyle, że MIcrosoft oferuje wystarczający na potrzeby małych zespołów serwer TFS za darmo.
No i zaczęło się. Ilość commitów była tak samo mała albo nawet mniejsza niż w pracy bo i tak tylko ja ich będę potrzebował, każdy brak połączenia z internetem czy dziwne problemy z połączeniem do serwera powodowały, że Visual Studio co jakiś czas zamulało lub rzucało okienkami informującymi, że nie mam połączenia z kontrolą wersji. No ale ile można tak żyć? Niby workflow już mi znane, niby jakieś tam kolejne rewizje kodu są, niby mam dostęp do solucji na każdym komputerze, który ma połączenie z internetem, ale… No właśnie, robienie commitów co kilka dni powoduje, że każdy jeden to tona zmian, nawet próba opisania tego kończy się na tekście „dużo nowego kodu”. Dodatkowo nie mogę commitować jeśli nie mam dostępu do sieci. Zrobienie scenariusza, który pojawić się może bardzo rzadko i po prostu wykracza poza ramy typowego użycia nawet nie wiem czy jest możliwe. Oprócz tego właściwie jedyne narzędzie do obsługi tego systemu kontroli wersji to Visual Studio. No i działa ten cały TFS bardzo wolno.
Jakoś brnąłem w tym do przodu, ale poziom frustracji wzrastał. W dodatku teraz w pracy pracuję z GITem i po pierwszych kilku dniach „nieogaru” codzienna praca wydaje mi się naturalna i prosta, a w razie problemów właściwie każdy możliwy scenariusz jest opisany w internecie i ostatnią odpowiedzią nie jest „bo tak”.
Ale ten mój nieszczęsny projekt mam w tym cholernym TFSie. Mam w nim ledwo garstkę commitów wielkich jak wodospad Niagara. Mam w nim jakieś gałęzie, z których nawet korzystam. I teraz tak sobie myślę – czemu ja byłem taki głupi? Czemu mimo, że regularnie trafiałem w internecie na artykuły wyjaśniające dlaczego nie wolno brać TFSa do własnego projektu skorzystałem z niego? Pewnie była to zwykła głupota i wybór był podyktowany myślą „bo to znam”, ale teraz żałuję. Nie wiem jeszcze czy będę próbował to jakoś migrować, może się uda i będzie sens jeśli znajdę jakieś narzędzia do tego. Możliwe, że ostatecznie w tym wypadku już machnę ręką i dokończę na tym co jest jeśli zabawa będzie wymagała bardzo dużo pracy i zmian.
Ale zakończenie jest takie, że wybranie TFSa jako systemu kontroli wersji to jest pchanie się w wielką dziurę obok której stoi tabliczka „Problemy” i niech Was ręka boska chroni przed takimi wyborami ;)
Leave a Comment