2013-03-05 9 views
14

Nie jestem pewien, dlaczego nigdy wcześniej tego nie zauważyłem, ale kiedy "Pobierz najnowsze" z TFS, data i czas na pliki w moim lokalnym folderze pracy są ustawione na bieżącą datę i godzinę. Dotyczy to dat utworzonych i zmodyfikowanych, nawet jeśli nie wprowadzono żadnych zmian (ponieważ właśnie zrobiłem "Get Latest", nic więcej).znacznik czasu, gdy otrzymujesz najnowsze od TFS i czy to ma znaczenie?

Czy powinienem być zaniepokojony datami i czasami plików, które nie odzwierciedlają prawdziwej daty i godziny utworzenia pliku, a następnie jego modyfikacji? Mam historię zmian w TFS, więc nie jestem zbytnio zaniepokojony, ale muszę przyznać, że to źle. Wszystko, co robię technicznie działa, ale chcę wiedzieć, co się dzieje.

Odpowiedz

20

Jak można zauważyć, domyślnym zachowaniem w Team Foundation Server jest zapisywanie czasów plików do "bieżącego" czasu (po pobraniu pliku). Jest to domyślne zachowanie większości narzędzi kontroli wersji i ogólnie uważane za bezpieczne.

Ustawienie czasu na czas zdalny może mieć negatywne konsekwencje w wielu scenariuszach. Na przykład: make wyszuka pliki nowsze niż ostatni czas kompilacji. Ustawienie czasu pliku na czas serwera może mieć wpływ na możliwość określenia, które pliki zmieniły się od czasu ostatniej kompilacji.

Jednakże, jeśli nie preferują tego zachowania i korzystania z co najmniej TFS 2012 i Visual Studio 2012, można włączyć go na zasadzie per-Workspace przez ustawienie „Czas pliku” na „Checkin”:

enter image description here

Dodatkowe szczegóły from Microsoft: Czas

pliku:

  • Wybierz opcję Checkin, jeśli chcesz, aby data i sygnatura czasowa każdego pliku zgadzały się ogólnie z pieczęcią zestawu zmian wersji w obszarze roboczym . Kilka problemów i wyjątki to:

    • Po modyfikacji pliku lokalnego, data i czas znaczek będzie pasował datę i czas, kiedy zmodyfikowany plik.

    • Ta funkcja jest dostępna tylko w przypadku używania programu Visual Studio 2012 lub nowszego oraz programu Visual Studio Team Foundation Server 2012 lub nowszego.

    • Ustawienie nie dotyczy folderów, chyba że istnieje oczekująca operacja dodawania lub usuwania pliku znajdującego się w folderze.

    • Możesz nie być w stanie zbudować projektu kodu narastająco. Zamiast tego będziesz musiał odbudować).

  • Wybierz Obecny jeśli chcesz, daty i czasu, aby dopasować datę i czas, kiedy ostatnio zmodyfikowano plik lokalny. Na przykład członek zespołu dokonał ostatniej zmiany w pliku w poniedziałek. W dniu we wtorek wykonujesz operację pobierania, aby zaktualizować plik. Data i sygnatura czasowa jest ustawiona na wtorek.

+4

Uwaga: Wydaje się, że jest to nowa funkcja w TFS2012, ponieważ TFS2010 nie wyświetla tej opcji. Czy wiesz, czy było to możliwe w innym miejscu lub w ogóle niemożliwe w starszej wersji? – SvenS

+5

@SvenS przepraszam, nie, to jest rzeczywiście nowe w 2012 –

+5

Trochę mi poszło, aby znaleźć to okno dialogowe. W VS2013 jest to plik File, Source Control, Advanced, Workspaces. Następnie wybierz obszar roboczy, przycisk Edytuj. – goodeye

1

Jak wspomniano, że jest to domyślne zachowanie TFS. Jest to system kontroli wersji pięści, którego użyłem tam, gdzie jest to ustawienie domyślne. Problem z używaniem bieżącego czasu dla plików, gdy programista jest najnowszy, polega na tym, że możesz tylko stwierdzić, czy masz najnowszą wersję, porównując plik na każdym pliku. Trzech różnych programistów w tym samym projekcie będzie miało 3 różne wartości daty dla tej samej wersji pliku. Tak czy inaczej, zawsze czyść projekt przed utworzeniem kompilacji. Czemu? Ponieważ możesz zmodyfikować plik lub dwa, po testach powrócił do najnowszej wersji. Z mojego doświadczenia wynika, że ​​zawsze lepiej jest korzystać z czasu zameldowania.

+2

Dlatego właśnie nie powinieneś używać dat, aby powiedzieć, jaka masz wersję pliku: nie tylko trzej różni programiści mają tę samą treść z różnymi datami, trzej programiści mogą mieć różne treści z tą samą datą! Twoje narzędzie kontroli wersji może Ci powiedzieć, jaka masz wersję i czy ją edytujesz, czy nie. Jeśli nie ufasz temu, nie powinieneś go używać. –

+1

Muszę dać +1 tej odpowiedzi. Prowadzę centrum danych i niepoprawne daty są straszne podczas aktualizacji. Porównywanie pliku przez bajt jest właściwym sposobem, ale nie przez WAN. – Brain2000

+0

Dlatego uruchamiasz sesję zdalną i zdalnie wykonujesz mieszanie. –

1

TFS nie powinien modyfikować oryginalnych atrybutów pliku w przetwarzaniu sterowania źródłami. Jego funkcje kompilacji powinny wykorzystywać własne właściwości do kontrolowania najnowszych sprawdzonych wersji i kontroli budowania. Pobieranie plików z TFS powinno spowodować cofnięcie oryginalnego pliku w systemie, którego oryginalne właściwości pozostały niezmienione. TFS jest zepsuty przez przejęcie własności oryginalnego pliku dla własnych celów. Oryginalne narzędzie Microsoft VSS zapewniło tę opcję - wstyd dla zespołu TFS.

0

Szukam również tego, ponieważ mój pracodawca nie jest gotowy, aby przejść do najnowszej wersji TFS dziś natknąłem się na to TFS Source Control Explorer Extension i po zainstalowaniu tej wtyczki mogę uzyskać pliki z datą odprawy. Jeśli ktoś nadal szuka plików z datą odprawy dla TFS 2010 i klientem jako VS 2010, powinien to zrobić.

Powiązane problemy