Jakie są duże różnice między TFVC (TFS Version Control) a Git do kontroli źródła podczas korzystania z programu Visual Studio 2013?

101

Jest mnóstwo pytań i odpowiedzi na temat Git kontra TFVC Source Control, ale żadne aktualne odpowiedzi nie obejmują integracji Git z Team Foundation Server / Service, które mogę znaleźć.

Rozpoczynam tworzenie zielonych pastwisk przy użyciu szerokiej gamy języków (C #, C ++, PHP, Javascript, MySSQL) przy użyciu Visual Studio 2013. W przyszłości będzie trochę rozwoju iOS. Bardzo dobrze znam SVN, VSS i TFVC do kontroli źródła. Jednak nigdy nie używałem Git. Wolę TFS do zarządzania procesami / zwinnego rozwoju ... Nie jest doskonały, ale dobrze integruje się z Visual Studio.

Tak więc, aby pomóc mi zdecydować między tymi dwoma systemami ...

Jakie są duże różnice między TFVC i Git do kontroli źródła podczas korzystania z programu Visual Studio 2013?

  • Czy jedyną korzyścią w moim przypadku jest lokalne repozytorium (nie mówiąc, że jest to nieistotne) i wsparcie rozwoju iOS?
  • Jest jedyną wadą interfejsu wiersza poleceń Gita (niektórzy twierdzą, że to nie wada ;-P).
  • Czy masz doświadczenie z graficznym interfejsem użytkownika programu Visual Studio 2013 dla Git? Czy to wystarczy, aby obsługiwać podstawowe rozgałęzianie / scalanie bez interfejsu wiersza poleceń?
  • Czy istnieje szczegółowy przewodnik dotyczący uruchamiania Git, który pokazuje, że Git jest używany z programem Visual Studio 2013? Microsoft ma wideo do integracji istniejącego repozytorium Git z Visual Studio 2013, ale szukam początku od zera z Git i VS 2013.

Nie szukam tutaj książki, ale tylko kilka wypunktowanych punktów i może kilka odpowiednich linków od ludzi, którzy używali zarówno TFVC, jak i Git.

Greg Grater
źródło

Odpowiedzi:

115

Jakie są duże różnice między TFS i Git do kontroli źródła podczas korzystania z VS 2013?

MSDN ma bardzo obszerną stronę na temat wszystkich funkcji i różnic między Team Foundation Version Control i Git .

Czy jedyną korzyścią w moim przypadku jest lokalne repozytorium (nie mówiąc, że jest to nieistotne) i wsparcie rozwoju IoS?

Nie, jest o wiele więcej, ale często są to zaawansowane scenariusze Gita. Lokalne repozytorium, obsługa w trybie offline i pełna lokalna wierność historii są niezwykle wydajne, dzięki programowi Visual Studio można to zrobić zaraz po wyjęciu z pudełka. Jest też kilka innych funkcji, które są świetne! Możliwość rozgałęziania i scalania z jednego repozytorium do drugiego jest bardzo potężna. Polecam zajrzeć do książki Pro Git . Git w TFS to po prostu kolejny serwer git, ma prawie wszystkie funkcje, które ma standardowy Git.

Możliwość przepisania historii przed scaleniem umożliwia usuwanie lub łączenie kilku mniejszych zestawów zmian, dzięki czemu historia jest czystsza i łatwiejsza do odczytania jako człowiek.

Jest jedyną wadą interfejsu wiersza poleceń Gita (niektórzy twierdzą, że to nie wada ;-P).

TFVC ma również wiersz poleceń, ludzie go po prostu nie używają. Dla osób, które chcą korzystać z Git i nigdy nie robią więcej niż TFVC, prawdopodobnie nie będą musiały opuszczać interfejsu użytkownika, ale nie otrzymają wielu fajnych funkcji ...

Może być kilka innych wad, głównie z powodu tego, że różni się od tego, do czego ludzie są przyzwyczajeni. Nie jest trudno strzelić sobie w stopę, jeśli nie poświęcisz czasu, aby dowiedzieć się, co robi git, kiedy coś robisz. Rzeczy takie jak Rebase i Squash są naprawdę potężne i tworzą bardzo czystą historię, ale mogą pozostawić ludzi z problemem, że nie będą już mogli się połączyć, jeśli zostaną niewłaściwie użyte. TFS ma możliwość wprowadzenia pewnych ustawień bezpieczeństwa, aby odebrać prawa do podejmowania bardzo głupich decyzji w repozytorium git .

Bardzo fajnym dodatkiem dla użytkowników Git w systemie Windows jest PoSHGit . zapewnia autouzupełnianie poleceń w wierszu poleceń programu PowerShell.

Czy masz doświadczenie z interfejsem graficznym VS 2013 dla Git? Czy to wystarczy, aby obsługiwać podstawowe rozgałęzianie / scalanie bez interfejsu wiersza poleceń?

Ma wszystko, czego potrzebujesz do podstawowych operacji. Ale musisz być w stanie wizualizować różne gałęzie, aby wiedzieć, co się dzieje. Ponieważ serwer Git i lokalne repozytorium to tylko Git, każdy klient git może Ci tutaj pomóc. SourceTree jest tutaj opcją. Klient Git dla Windows jest inny.

W przypadku standardowych operacji, zaewidencjonowania, wyewidencjonowania, scalania, rozgałęziania (lub wypychania, ściągania, pobierania, zatwierdzania, scalania) interfejs użytkownika działa dobrze.

Czy istnieje szczegółowy przewodnik dotyczący uruchamiania Git, który pokazuje, że Git jest używany z VS 2013? MS ma wideo do integracji istniejącego repozytorium Git z VS 2013, ale szukam początku od zera z Git i VS 2013?

Począwszy od Git jest dostępny w wielu miejscach ... Oto kilka opcji:

Inne dobre lektury:

I kilka narzędzi, które warto zainstalować:

jessehouwing
źródło
3
Strażnicy ALM wkrótce opublikują wskazówki dla użytkowników Git dla TFVC tutaj: vsarbranchingguide.codeplex.com/releases . Obecne wydanie Beta jeszcze go nie ma, spodziewam się, że spadnie wraz z kolejną partią :).
jessehouwing
8
Po prawie roku od mojego pierwotnego posta pomyślałem, że dam wszystkim znać, że z powodzeniem używamy VS2013 z Git. Uwielbiam możliwość tworzenia wielu repozytoriów w ramach jednego projektu zespołowego. Mieliśmy kilka problemów z łączeniem. W kilku przypadkach automatyczne scalanie wybiera nieprawidłowo. Więc to, co wygląda na udane połączenie, tak naprawdę nie jest. Teraz dokładnie sprawdzamy wszystkie scalone pliki. Istnieją również pewne przypadki, w których scalanie dławi się i generuje błąd w interfejsie VS UI (konflikt scalania libgit2). Aby to naprawić, musimy przejść do zachęty cmd i wydać polecenie git pull (nie jest to zabawne).
Greg Grater
1
Wiem, że nadchodzi poprawka dla tego ostatniego błędu w ramach Aktualizacji 4. I że zdarzały się przypadki, w których ustawienia linii końcowej różniły się między programistami, co może powodować te problemy.
jessehouwing
5
Używamy VS 2013 z aktualizacją 4, ponieważ została usunięta kilka miesięcy temu i wydaje się, że naprawiła wszystkie nasze problemy z Git z GUI. Mamy zwyczaj regularnie pobierać dane ze zdalnego serwera, co pomaga nam na bieżąco aktualizować nasze lokalne repozytoria. Ponadto firma MS przeszła ostatnio kilka pozytywnych aktualizacji na tablicach rejestrów produktów / zadań. Bezpośrednio z tablicy możesz teraz edytować opis, przypisać, ustawić status i dostosować priorytet / kolejność pozycji.
Greg Grater
1
Linki „Git vs TFVC” prowadzą do „Rozpocznij korzystanie z Git”. Czy to oznacza teraz, że powinniśmy lepiej używać Gita zamiast TFVC? ; D znalazłem nowy link: visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc
Martin Schneider
17

Aby wyjaśnić mylącą, mieszaną terminologię, która jest często używana w TFS

Team Foundation Server (TFS) to narzędzie do zarządzania cyklem życia aplikacji, które obejmuje składnik systemu kontroli wersji źródła (VCS) .

VCS składnik TFS używa przede wszystkim Zespół Wersja Foundation sterowania (TFVC)

Tak więc pytanie brzmiałoby: TFVC kontra Git

(W rzeczywistości TFS obsługuje Git jako opcję VCS ).

Tak więc pytanie brzmi: TFVC kontra Git

jessehouwing ma świetną odpowiedź, która szczegółowo omawia tę kwestię, więc prosimy o odniesienie się do niej

Jeśli chodzi o wybór, którego użyć, moim zdaniem wygrywa Git

  1. Jest lekki: prosty w konfiguracji i rozpoczęciu użytkowania.
  2. Jego rozproszony charakter oznacza, że ​​jest bardzo odporny na katastrofy, ktoś zawsze będzie miał kopię repozytorium.
  3. Praca w trybie offline jest prosta, pracujesz z własnym pełnym repozytorium. Możesz zatwierdzać zmiany, przywracać, przeglądać historię itp. Musisz być online tylko wtedy, gdy chcesz zsynchronizować się ze zdalnym repozytorium.
  4. W TFS nie ma prostego sposobu na zapisanie stanu zmian (dodania plików, modyfikacje, usunięcia plików) i przełączenie się do innego stanu kodu. (Na przykład, aby pracować nad dwiema funkcjami i przełączać się między nimi). W git po prostu płacisz inną gałąź.
James Wierzba
źródło
1
TFS ma gałęzie i zestawy półek (co pozwala na # 5), a jeśli naprawdę chcesz, możesz nawet skonfigurować swoje projekty tak, aby używały git. TFS VCS ma również wiersz poleceń dla #. Nie jest lekki, ale robi o wiele więcej po wyjęciu z pudełka niż git, ponieważ ma pełne zarządzanie projektami / śledzenie błędów / śledzenie pracy / zarządzanie wydaniami / zarządzanie kompilacją / politykę sprawdzania / testowanie wbudowane.
Matthew Whited
@MatthewWhited Jasne, że jest to możliwe, ale jest niezwykle uciążliwe w porównaniu z git, ze względu na implementację opartą na katalogach w porównaniu z implementacją opartą na grafach. Zauważ, że stwierdziłem, że nie ma simplesposobu, aby to zrobić.
James Wierzba
@MatthewWhited Ponadto zgadzam się na dodatkowe narzędzia cyklu życia aplikacji, ale ograniczam się do rozwiązań kontrolujących wersje kodu źródłowego.
James Wierzba
1
IDK ... Uważam, że TFS jest całkiem prosty w użyciu. Chociaż nie podoba mi się również wszystkie gałęzie utworzone przez GIT, ponieważ utrudnia to zapewnienie, że każdy jest jednym tym samym kodem z szybkim odejściem dla niektórych, a powolnym dla innych.
Matthew Whited
Nie wiem. GIT jest po prostu zbyt skomplikowany dla zadania, które ma wykonać i bardzo nieintuicyjny (dlaczego jest to żądanie ściągnięcia, a nie żądania wypychania?!). Kontrola źródła TF jest bardzo prosta i można ją wyjaśnić każdemu nowemu deweloperowi w moim zespole w ciągu kilku minut. Uważam również, że zachęcanie do pracy lokalnie jest dużym utrudnieniem w zespole, a nawet indywidualnie. Jak zapobiec utracie pracy w Git bez zaśmiecania projektu gałęziami? (Do tego są półki w TFS - NA SERWERZE)
Cesar
4

Jest jedyną wadą interfejsu wiersza poleceń Gita (niektórzy twierdzą, że to nie wada ;-P).

Jeśli nie podoba Ci się interfejs wiersza poleceń, istnieje wiele interfejsów GUI dostępnych dla Git. Sam Git faktycznie zawiera narzędzie GUI przeglądarki repozytorium o nazwie gitki git-gui- GUI dla git. Następnie są aplikacje innych firm, takie jak git-cola , TortoiseGit i inne .

kralyk
źródło
2
Oczywiście samo Visual Studio zapewnia GUI dla Git. Ale zawsze możesz chcieć zagłębić się w linię poleceń, aby zrobić rzeczy, które w innym przypadku są niemożliwe. Graficzny interfejs użytkownika, który ujawnia wszystkie polecenia Gita, jest tak samo trudny, jak wiersz poleceń.
jessehouwing
Istnieją elektronarzędzia wiersza poleceń. Na przykład, aby całkowicie wyeliminować gałąź z istnienia.
Inżynier