Temat mi trochę leżał i chodził po głowie. Wczoraj zaś wieczorem przeglądałem swoje notatki i co chwilę natrafiałem na TFS – TFS to, TFS tamto. Nawet mam katalog z screenshotami różnych sytuacji które mi się przytrafiły w trakcie pracy z TFS. I tak co chwilę: nie, nie napiszę, bo ludzie nazwą to rantem. I pewnie mielibyście rację. Kilkanaście sytuacji przydarzyło się tylko mi i tylko parę razy w jakiś konkretnych sytuacjach. Ale się przydarzyły więc ciężko powiedzieć, że “się nie zdarzają”.

Kiedy mówię TFS mam namyśli tylko i wyłącznie kontrolę wersji i integrację tego z VS.

Już nieraz pisałem o swoich przygodach z TFS. Tych sytuacji jest dużo więcej. Czasami połączone są one z Windowsem, czasami z jakością połączenia z Internetem, a czasami po prosto… restart pomaga. Restart VS lub restart komputera. Ostatnio miałem dość standardowy problem pobierania najnowszej wersji. Która pobrała część plików ale z jakiegoś powodu nie pobrała csproj i nowych plików. Więc miałem zaktualizowaną stronę cshtml z odwołaniem do nie istniejącego kontrolera. Już nie wspominając o takich prostych rzeczach jak umożliwienie robienia commit nie pobierając najnowszej wersji repo (to się da pewnie ustawić, ale DOMYŚLNIE tak nie jest). Przy czym, czasami TFS wie lepiej i potrafi zmiany na pliku już z checkinowanego napisać naszym checkinem. Dlaczego i jak? NIE WIEM. Jak ktoś prosi mnie o kroki repozytorium to przeważnie one wyglądają tak samo:

  1. Edutuj plik
  2. Zapisz
  3. Zrób checkin
  4. PROBLEM

Albo:

  1. Otwórz solution
  2. Pobierz najnowszą wersję
  3. PROBLEM

Najlepsze jest połączenie VS i TFS kiedy następuje problem. Na przykład blue screen podczas pracy na solution przez zrobieniem checkin. Nie licząc znikających zawartości plików (pliki tekstowe zamieniane są w jakieś niezrozumiałe binarne), to csproj kompletnie wariuje mówiąc, że plik jest mimo, że go nie ma, TFS nie pozwala go dodać bo on już został usunięty albo dodany. Po prostu człowiekowi ręce opadają. Próba zrozumienia przyczyny wykracza poza jakąkolwiek sensowność.

Poniżej więc zamieszam kilka przykładów mojego doświadczenia z TFS. Głównie ku przestrodze. Ale o TFS można wiele pisać i nic pozytywnego. Oczywiście TFS jako kontrola wersji. Do reszty nie mogę się ani przyczepić ani powiedzieć nic złego/dobrego.

Pierwszy przykład dwóch zdjęć pokazujących problem. Według TFS mam najnowszą wersję:

TFS: najnowsza wersja
TFS: najnowsza wersja
TFS: najnowsza wersja
TFS: najnowsza wersja

Drugi: zgadnijcie który not-found dało się otworzyć?

TFS: pliki które są a ich nie ma
TFS: pliki które są a ich nie ma

Ci którzy powiedzieli żaden wygrali

Trzeci: dodanie plików do solution na którym pracuje (restart pomógł):

TFS: you shall no pass!
TFS: you shall no pass!

Czwarty: nieistniejący plik w TFS a może jednak?

TFS: pobawmy się w chowanego
TFS: pobawmy się w chowanego

Piąty: nie ma to jak dowiedzieć się, że nasza wersja solution nagle jest 0…

TFS: Każdy czasami musi się zresetować!
TFS: Każdy czasami musi się zresetować!

Szósty: wybiórcze pliki w TFS…

TFS: entliczek pentliczek...
TFS: entliczek pentliczek…

Siódmy: nawet nie wiem co napisać:

TFS: are we there yet? are we there yet?
TFS: are we there yet? are we there yet?

Osómy: mergowanie plików…

TFS: To jest za trudne... nie dam rady
TFS: To jest za trudne… nie dam rady
TFS: To jest za trudne... nie dam rady
TFS: To jest za trudne… nie dam rady

Szczerze i to też jest przefiltrowane… ogólna lekcja z tego, nie korzystajmy z TFS jako kontroli wersji. To po prostu nie działa. I już nie tylko mnie, ale zaczyna także ludziom, z którym pracuje. Na szczęście jeszcze w tym roku mówimy TFSoswi PAPA, stąd też pewnie mój ostatni post na ten temat.

Jeżeli się spytacie mnie czy polecam TFS jako kontrolę wersji, odpowiedź brzmi NIE. Niezależnie jakie macie wymagania. Nie zrobię wam tego co mi jakiś genialny konsultant zrobił.

A wy mieliście jakieś swoje przygody z TFS? Jakie? :)

10 KOMENTARZE

  1. Pięć lat pracowałem na TFS na olbrzymich branchach i to było naprawdę kłopotliwe.
    Teraz pracuję na GIT na dobrze zorganizowanych źródłach (branch per solucja), co naprawdę ułatwia pracę z tworzeniem branchy pod konkretnego taska (viva integracja Jira + Stash).
    Mam nadzieję, że więcej nie wrócę do archaicznego TFS…

    • Tak man od… niech pomyślę… i tak na to przechodzimy. A tfvc jest tak znane ze hohoho m, pierwszy raz w życiu słyszę te nazwę, chyba specjalnie została wymyślona by teraz mowić nie nie, tfs ma git to co fatalne to tfvc!

      Wiec tytuł jak najbardziej prawdziwy :) tfs ssie na tyle ze nawet ms nigdy nie trzymał tam kodu windowsa…

  2. Ja na szczęście przygodę z TFS skończyłem kilka lat temu (żałuję, że tak późno).
    Aż takich kwiatków nie widziałem, ale nigdy nie mogłem pojąć kto wpadł na pomysł oznaczania plików domyślnie jako read only. Strasznie denerwujące (przy domyślnych ustawieniach) wyskakujące okienko przy próbie edycji nowego pliku z pytaniem czy na pewno chce go edytować i w jakim trybie. Nie no.. tak sobie wszedłem i popisać chciałem, ale nic zobowiązującego… ;)
    Każda próba hurtowej edycji (np. w Notepad++) musiała być poprzedzona zdjęciem atrybutu read only z wybranych. Próby masowej zmiany nazwy z tego co pamiętam były jeszcze trudniejsze. Czasami logika MS mnie rozwala na łopatki…

Comments are closed.