Używamy pliku wsadowego do generowania kodu i automatycznie pobiera wygenerowane pliki z Team Foundation Server (TFS), aby mógł je ponownie wygenerować. Większość tych plików nie jest modyfikowana, ale generator nie wie o tym z wyprzedzeniem.
Polecenie „tfs undo” cofa wyewidencjonowanie, ale pyta, czy niektóre z nich zostały zmodyfikowane (czego nie chcemy robić). Nie chcemy też od razu rejestrować wygenerowanych plików.
Czy istnieje polecenie (lub seria poleceń), aby cofnąć pobranie wszystkich niezmodyfikowanych plików bez monitowania użytkownika?
tfs
version-control
tfvc
Robert Wagner
źródło
źródło
ADD
zmiany bez pytania (zobacz odpowiedź Ray ).Odpowiedzi:
Przyjrzyj się poleceniu Undo Unchanged w Team Foundation Server Power Tools z sierpnia 2011
Dzięki Matt Florence za aktualizację linków.
Dzięki Ray Vega za aktualną składnię .
źródło
Zainstaluj Team Foundation Server Power Tools i uruchom następujące polecenia z wiersza polecenia za pomocą tfpt.exe w katalogu głównym obszaru roboczego projektu:
c:\myProject> tfpt uu . /noget /recursive
Dołączanie
/noget
jest wysoce zalecane, ponieważ zapobiega wymuszonemu „pobierz najnowsze” wszystkich plików projektu, co w zależności od całkowitej liczby może zająć bardzo dużo czasu.źródło
cd
do miejsca, w którym znajduje się twój katalog obszaru roboczego (na przykład mójc:\myProject
), albo jawnie dołącz go pouu
(zastępując nim kropkę.
)Dziękuję @mike & @ray,
Chcę to ułatwić.
W VS, w menu Narzędzia, kliknij „Narzędzia zewnętrzne”.
Kliknij Dodaj.
Wpisz tytuł.
Polecenie: tfpt.exe
Argumenty: uu. / noget / recursive
Katalog początkowy: [można wybrać przycisk ze strzałką].
Do menu Narzędzia dodano dwa nowe polecenia.
Używaj ich w razie potrzeby.
Cieszyć się,
Ofir
źródło
Program Visual Studio będzie wiedział, czy wyewidencjonowany plik ma zmiany, czy nie.
OSTRZEŻENIE: Ta metoda usuwa również nowe pliki, tj. Pliki, które nie zostały jeszcze wpisane do TFS. Jeśli chcesz zachować te pliki, po prostu wyklucz je z zestawu plików, które „cofniesz”.
źródło
Be aware that this method also removes added files that are not yet checked in from TFS.
... tak, to całkiem natychmiastowy dyskwalifikacja.Zaktualizowano to pytanie o odpowiedź podczas pracy tylko z TFS2017 i VS2017 / VS2019 .
Elektronarzędzia nie istnieją dla TFS 2017, a stare nie mogą dobrze współpracować z nim, ale najwyraźniej większość funkcji została przeniesiona do samego VS2017 lub wtyczek (patrz poniżej).
Rozszerzenie programu Visual Studio 2017/2019
Niektóre działania, takie jak cofanie niezmienionych plików, zostały przeniesione do pliku
rozszerzenie dla VS2017
rozszerzenie dla VS2019
Lokalizacja przycisku „Cofnij niezmienione”:
Znany błąd
Musisz otworzyć „Eksplorator kontroli źródła” (i pozostawić go otwartego), aby „Cofnij niezmienione” było wyświetlane w menu Akcja widoku Oczekujące zmiany. zgłoszony tutaj .
Rozszerzenie integracji z powłoką systemu Windows
Ponadto nadal można skonfigurować integrację powłoki systemu Windows za pomocą osobnego instalatora który nie jest już powiązany z TFS Power Tools.
Integracja powłoki systemu Windows nie działa dokładnie tak samo, jak poprzednie elektronarzędzia, ale najważniejsze czynności zadziałały dla mnie.
źródło
Jeśli po prostu ponownie zwrócisz wszystkie pliki, które wyewidencjonowałeś, TFS jest wystarczająco inteligentny, aby dowiedzieć się, które z nich uległy zmianie i uwzględnić je tylko w zestawie zmian zarejestrowanym na serwerze.
TFS robi to, porównując skróty MD5 zawartości plików przed i po wpisaniu.
Wszystko to przy założeniu, że proces generowania polega wyłącznie na aktualizowaniu tego samego zestawu plików, tj.nigdy nie będzie przypadku, w którym plik, który został wygenerowany w poprzedniej generacji, nie będzie potrzebny w następnej generacji (tj. Będziesz chciał czekać na usunięcie dla tego pliku) lub zmiana nazwy plików.
Jeśli twój proces może potencjalnie wymagać usunięcia plików, najlepszym rozwiązaniem może być sprawdzenie polecenia Team Foundation Power Tools ( tfpt ) i użycie polecenia tfpt online, które wypisze tylko te pliki, które uległy zmianie i będzie wystarczająco inteligentne, aby pend usuwa wszelkie pliki, które nie są już potrzebne lub zmieniono nazwę i pend add.
Powodzenia,
Jaskółka oknówka.
źródło
Należy pamiętać, że funkcja cofania TFS nie przywróci wartości „Data modyfikacji” systemu plików. Jest to bardzo frustrujące, zwłaszcza jeśli używasz narzędzi takich jak robocopy do synchronizowania zdalnych maszyn. Nawet po cofnięciu wypisania, jeśli zapisałeś plik, aktualizując w ten sposób wartość „Data modyfikacji”, ta zaktualizowana wartość będzie obowiązywać nawet po cofnięciu wypisania.
źródło
Istnieje kilka punktów dotyczących opcji uu dla tfpt (zalecanych w większości innych odpowiedzi), które na początku nie były dla mnie jasne. Po pierwsze, jest to pomoc wiersza poleceń, do której można uzyskać dostęp za pomocą polecenia
tfpt uu /?
Pozwólcie, że podzielę się poleceniem zalecanym w innych odpowiedziach.
tfpt uu
określa, że chcemy użyć polecenia „Cofnij bez zmian”..
wskazuje (chyba), że bieżący katalog roboczy powinien być używany jako specyfikacja pliku./noget
zapewnia, że polecenie „pobierz najnowszą wersję” nie zostanie wywołane przed cofnięciem niezmienionych plików./recursive
zapewnia, że pod uwagę będą brane nie tylko specyfikacje plików, ale wszystkie rekursywne foldery i pliki potomne. Wydaje się, że zależy to od specyfikacji pliku - jeśli jej nie podano, przetwarzany jest cały obszar roboczy.Jest więc kilka rzeczy, na które należy zwrócić uwagę w związku z poleceniem z góry ...
Zauważyłem, że następujące polecenie działa najlepiej dla mnie - przetworzy cały obszar roboczy.
tfpt uu /noget
Zauważ, że nadal jest zależny od katalogu roboczego, ponieważ tfpt używa go do określenia, który obszar roboczy powinien zostać przetworzony. Ale jeśli podasz ścieżkę do pliku lub folderu w obszarze roboczym, możesz iść.
źródło
Widzę powyżej podejście Raya LionFanga. Nie mogę tam komentować, ponieważ nie mam przedstawiciela. Chociaż podoba mi się to podejście, ponieważ nie są wymagane żadne zmiany w narzędziach itp ........
....... jest problem z takim podejściem w tym, że wybranie „Nie dla wszystkich” zachowuje kilka plików, które nie są modyfikowane. Wydaje się, że robi coś w rodzaju Cofania niezmodyfikowanych plików, dopóki nie trafi do pierwszego pliku, który faktycznie został zmodyfikowany, a następnie zignoruje pozostałe niezmodyfikowane pliki, jeśli ma to jakiś sens. Widziałem ten efekt tylko raz na jakiś czas.
Potencjalnym obejściem jest postępowanie zgodnie z powyższym procesem, ale zamiast wybierać „Nie dla wszystkich”, kliknij „Nie” dla każdego pliku. Ponieważ może to chwilę potrwać, w zależności od liczby plików, z którymi pracujesz, zwykle przytrzymuję wciśnięte klawisze „ALT + N”, a to po prostu przyspiesza przeglądanie wszystkich plików, jednocześnie cofając WSZYSTKIE niezmodyfikowane pliki.
źródło
O ile zrozumiałem, w TFS, jeśli wyewidencjonujesz projekt zespołowy, cały projekt jest wyewidencjonowany i nie masz kontroli nad tym, które pliki są usuwane. Jeśli chcesz zapobiec zameldowaniu się w niektórych plikach, możesz je zablokować.
W pracy wszyscy nienawidzimy TFS.
źródło