Co to jest regały w TFS?

317

Czy półki w TFS są jedynie miękkim odpisem, aby inni członkowie zespołu mogli zobaczyć kod źródłowy?

tzn. kod z półkami nie zostanie skompilowany, prawda?

Matthew Lock
źródło

Odpowiedzi:

453

Regały mają wiele zastosowań. Najważniejsze z nich to:

  1. Przełączanie kontekstu : Zapisywanie pracy nad bieżącym zadaniem, abyś mógł przejść do innego zadania o wysokim priorytecie. Załóżmy, że pracujesz nad nową funkcją, dbając o swój własny biznes, kiedy szef wpadnie i powie „Ahhh! Bug Bug Bug!” i musisz upuścić swoje bieżące zmiany w funkcji i naprawić błąd. Możesz odłożyć pracę nad funkcją, naprawić błąd, a następnie wrócić i nie chcieć później pracować nad zmianami.
  2. Udostępnianie zestawów zmian : jeśli chcesz udostępnić zestaw zmian kodu bez sprawdzania go, możesz ułatwić innym dostęp, odkładając go na półkę. Można tego użyć, gdy przekazujesz komuś niekompletne zadanie (biedna dusza) lub jeśli masz jakiś kod testowy, nigdy NIGDY nie sprawdzisz, czy ktoś inny musiał uruchomić. h / t do innych odpowiedzi na temat korzystania z tego do recenzji, jest to bardzo dobry pomysł.
  3. Zapisywanie postępów : pracując nad złożoną funkcją, możesz znaleźć się w „dobrym punkcie”, w którym chciałbyś zapisać swoje postępy. To idealny czas na odłożenie kodu. Załóżmy, że włamujesz się do CSS / HTML, aby naprawić błędy renderowania. Zwykle uderzasz go, powtarzając każdą możliwą kludge, którą możesz wymyślić, aż będzie wyglądać dobrze. Jednak, gdy wszystko będzie wyglądało dobrze, możesz spróbować wrócić do czyszczenia znaczników, aby ktoś inny mógł zrozumieć, co zrobiłeś przed sprawdzeniem. W takim przypadku możesz odłożyć kod, gdy wszystko się zgadza , możesz przejść do zmiany znaczników, wiedząc, że jeśli przypadkowo je złamiesz, zawsze możesz wrócić i uzyskać zestaw zmian.

Jakieś inne zastosowania?

TJB
źródło
16
Odkładając zestaw zmian, możesz albo zachować oczekujące zmiany lokalnie (przydatne dla 2 lub 3), albo nie (przydatne dla 1)
dumbledad
2
Dokumentacja programu Visual Studio dotycząca półek ma dodatkowy kontekst i informacje.
Holistic Developer
1
Jest również używany przez kompilację Gated do przechowywania zmian do czasu ostatecznego zatwierdzenia.
Tore Østergaard
Zauważyłem tylko, że zmiany na półkach niekoniecznie przywracają kod, ani nie zmieniają stanu plików do zalogowania. Więc pracując nad zmianami błędów, jak uniknąć popełniania kodu zmiany błędu wraz z twój kod półkowy?
Jacques
Właśnie zdałem sobie sprawę, że pliki pozostają wyewidencjonowane po wybraniu opcji zachowania zestawu zmian lokalnie.
Jacques
105

Półki to sposób na zapisanie wszystkich zmian w pudełku bez odprawy. Zmiany są zachowywane na serwerze. W późniejszym czasie ty lub którykolwiek z twoich kolegów z zespołu możecie „odsłonić” ich z powrotem na dowolnym komputerze.

Jest również świetny do celów przeglądu. W moim zespole do odprawy odkładamy nasze zmiany i wysyłamy wiadomość e-mail z opisem zmiany i nazwą zestawu zmian. Ludzie w zespole mogą następnie wyświetlić zestaw zmian i wyrazić opinię.

FYI: Najlepszym sposobem sprawdzenia zestawu półek jest użycie następującego polecenia

tfpt review / shelveset: shelvesetName; nazwa_użytkownika

tfpt jest częścią Team Foundation Power Tools

JaredPar
źródło
6
należy zauważyć, że nie byłoby dziś powodu, aby ręcznie odkładać zmiany i wysyłać informacje e-mailem. Współczesny proces polega na zażądaniu przeglądu kodu.
ChiefTwoPencils
34

Zgadza się. Jeśli utworzysz półkę, inne osoby dokonujące aktualizacji nie zobaczą Twojego kodu.

Wprowadza zmiany w kodzie na serwer, który prawdopodobnie lepiej jest wykonać kopię zapasową niż komputer roboczy.

Umożliwia odbiór zmian na innym komputerze, jeśli poczujesz potrzebę pracy z domu.

Inni widzą twoje półki (choć myślę, że może to być opcjonalne), aby mogli sprawdzić kod przed odprawą.

teedyay
źródło
Zgadza się. Jeśli utworzysz półkę, inne osoby dokonujące aktualizacji nie zobaczą Twojego kodu. Oznacza to, że 1) kiedy zarejestruję kod w TFS, to mój członek zespołu zobaczy kod w swoim systemie, jeśli dostanie najnowszy? 2) Czyli oznacza to, za pomocą którego konta odłożyliśmy kod na półkę, z tego samego konta tylko my zobaczymy kod na półce? proszę mnie poprawić, jeśli się mylę
Krish
Możesz zobaczyć półki innych ludzi, jeśli chcesz.
teedyay
3
Aby być bardziej precyzyjne, „inni ludzie robią tam najnowsze nie będzie pobrać kod”
sergiol
18

Jednym z punktów, który jest pomijany w wielu tych dyskusjach, jest to, jak cofasz się na SAMYM komputerze, na którym odłożyłeś zmiany. Być może dla większości oczywiste, ale nie dla mnie. Wierzę, że wykonujesz Cofanie oczekujących zmian - czy to prawda?

Rozumiem następujący proces:

  1. Aby odłożyć bieżące oczekujące zmiany, kliknij prawym przyciskiem myszy projekt, Półka, dodaj nazwę półki
  2. Pozwoli to zapisać (lub odłożyć) zmiany na serwerze (nikt ich nie zobaczy)
  3. Następnie wykonaj Cofnij oczekujące zmiany, aby przywrócić kod z powrotem do ostatniego punktu odprawy
  4. Następnie możesz zrobić to, co musisz zrobić z cofniętą linią bazową
  5. Możesz wycofać zmiany w dowolnym momencie (może to wymagać konfliktu podczas scalania)

Jeśli więc chcesz rozpocząć pracę, która może wymagać odłożenia na półkę, upewnij się, że dokonałeś odprawy przed rozpoczęciem, ponieważ punkt odprawy jest miejscem, do którego powrócisz, wykonując powyższy krok Cofnij oczekujące zmiany.

Nick Wright
źródło
8
Możesz pominąć krok cofania oczekujących zmian, jeśli wyczyścisz pole wyboru „Zachowaj zmiany oczekujące lokalnie” podczas tworzenia zestawu półek.
Michael J.
14

Cały czas się z tym spotykam, więc dodatkowe informacje dotyczące oddziałów:

Jeśli pracujesz z wieloma gałęziami, zestawy półek są powiązane z konkretną gałęzią, w której je utworzyłeś. Jeśli więc zbyt długo pozwolisz, aby zestaw zmian rdzewiał na półce i musiałeś odsunąć się od innej gałęzi, musisz to zrobić w lipcowym wydaniu elektronarzędzi.

tfpt unshelve /migrate
joshua.ewer
źródło
Nie na temat, ale prawda :-)
Tore Østergaard
2
Ten komentarz jest tak stary, że został dodany przed ustaleniem odpowiedzi na przepełnienie stosu ettiquete :-)
joshua.ewer
2

Regały są jak twoje zmiany zostały zapisane w kontroli źródła bez wpływu na istniejące zmiany. Oznacza, że ​​jeśli zaznaczysz plik w kontroli źródła, zmodyfikuje on istniejący plik, ale przechowywanie jest jak przechowywanie zmian w kontroli źródła, ale bez modyfikowania rzeczywistych zmian.

Pan N. Das
źródło
1

@JaredPar: Tak, możesz używać zestawów półek do recenzji, ale pamiętaj, że zestawy półek można zastąpić samodzielnie / innymi, a zatem nie są stabilne w dłuższej perspektywie. Dlatego w przypadku przeglądów mających znaczenie dla przepisów nigdy nie należy używać zestawu półek jako podstawy, a raczej checkin (Changeset). W przypadku nieformalnej recenzji jest to w porządku, ale nie w przypadku formalnej (np. Dotyczącej umowy o wolnym handlu) przeglądu!

Daniel
źródło
0

Jeśli używasz kompilacji Gated, po uruchomieniu kompilacji tworzony jest zestaw półek w obszarze roboczym, który jest przesyłany do kompilacji. Jeśli kompilacja się nie powiedzie, zestaw półek zostanie odrzucony. Jeśli kompilacja się powiedzie, zestaw zmian zostanie utworzony i zatwierdzony w TFS. W obu przypadkach osoba dokonująca tego wpisu / kompilacji będzie musiała uzgodnić obszar roboczy, co jest tak proste, jak wykonanie polecenia Pobierz najnowsze.

Jim Roth
źródło