Udostępnij za pośrednictwem


Destroy command (Team Foundation Version Control)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Program Visual Studio 2022

Użyj polecenia tf destroy, aby zniszczyć lub trwale usunąć pliki kontrolowane przez wersję z kontroli wersji programu Team Foundation (TFVC).

Nuta

Usunięcie repozytorium TFVC w usłudze Azure Devops nie jest dozwolone po jego utworzeniu. Polecenie tf destroy spowoduje zniszczenie lub trwałe usunięcie tylko plików lub folderów kontrolowanych przez wersję, ale nie spowoduje usunięcia repozytorium TFVC. Będzie ona nadal wyświetlana na liście opcji z usuniętym komunikatem.

Czasami trzeba wyczyścić systemy kontroli wersji. Jeśli na przykład niektóre pliki są zainfekowane wirusem komputera, należy je trwale usunąć z kontroli wersji. Nie usuwaj plików, które są nadal potrzebne. Nie można cofnąć akcji niszczenia.

Przed uruchomieniem tf destroy bez opcji /keephistory najpierw usuń pliki, które chcesz zniszczyć. Aby uzyskać więcej informacji, zobacz Usuwanie plików i folderów z kontroli wersji.

Po usunięciu plików można zsynchronizować magazyn TFVC. W przeciwnym razie magazyn nie zostanie zsynchronizowany z zniszczonym elementem.

Warunki wstępne

Aby użyć polecenia destroy, należy do Team Foundation Administrators grupy zabezpieczeń. Aby uzyskać więcej informacji, zobacz Domyślne uprawnienia serwera TFVC.

Składnia

tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>...<itemspecN>] 
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt] [/silent] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]]

Parametry

Argumenty

argumentów

opis

<itemspec1> [<itemspec2>...<itemspecN>]

Określa ścieżkę serwera pliku lub folderu do zniszczenia. Użyj wielu wartości itemspec, aby usunąć wiele elementów. Na przykład tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3.

Ścieżki lokalne nie są obsługiwane.

<versionspec>

Udostępnia wersję, taką jak C58 dla opcji /keephistory lub /stopat. Dozwolone wartości to date, tiplub określony zestaw zmian. Aby uzyskać więcej informacji na temat analizowania specyfikacji wersji w celu określenia, które elementy znajdują się w jego zakresie, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).

<username>

Udostępnia wartość opcji /login. Wartość username można określić jako DOMAIN\username lub username.

TeamProjectCollectionUrl

Adres URL kolekcji projektu, która zawiera pliki, które chcesz zniszczyć, na przykład http://myserver:8080/tfs/DefaultCollection.

Opcje

opcji

opis

/keephistory

Fakultatywny. Określa, że historia pliku jest zachowywana nawet wtedy, gdy jego zawartość jest niszczona. Tej opcji nie można określić przy użyciu opcji /preview.

/stopat

Fakultatywny. Można użyć tylko wtedy, gdy określono również /keephistory.

Określa wersję pliku i pliki, które następują po niej, dla których historia jest zachowywana.

Domyślną wersją /stopat jest tip (T) dla najnowszej zaewidencjonowanej wersji elementu.

Nie można użyć etykiety lub obszaru roboczego versionspec wartości, aby określić element dla opcji /stopat.

/preview

Wyświetla pliki, które zostaną zniszczone w oknie wiersza polecenia. Gdy tf destroy działa w trybie podglądu, pliki nie są faktycznie niszczone.

Nuta

Tekst w oknie wiersza polecenia wyświetla wyraz Zniszczony z każdym plikiem, który zostanie zniszczony. Jednak plik nie jest w rzeczywistości niszczony, gdy jest używana opcja /preview.

/startcleanup

Wymusza proces czyszczenia metadanych tfVC, aby rozpocząć natychmiast po zakończeniu usuwania. Jeśli użytkownik nie określi /startcleanup, proces czyszczenia zniszczonych metadanych występuje, gdy konserwacja bazy danych czyści wszystkie pliki, do których nie odwołuje się już usługa Azure DevOps Server. Domyślnie czyszczenie jest zaplanowane co pięć dni. Siedem dni po wyczyszczeniu metadanych kontroli wersji serwera Team Foundation zawartość zostanie usunięta przez inny proces czyszczenia. Domyślnie ten proces czyszczenia zawartości jest uruchamiany raz dziennie.

/noprompt lub /i

Określa, że niszczenie plików nie jest interakcyjne. /i jest aliasem /noprompt.

/silent

Określa, że podczas niszczenia plików lub folderów dane wyjściowe nie są zapisywane w oknie wiersza polecenia.

/login

Określa nazwę użytkownika i hasło do uwierzytelniania użytkownika za pomocą kontroli wersji serwera Team Foundation.

/collection

Określa kolekcję projektów.

Uwagi

Jeśli używasz tf destroy do zniszczenia plików kontroli wersji, warstwa aplikacji serwera TFVC odbiera żądanie zniszczenia i sprawdza, czy jesteś członkiem grupy zabezpieczeń Team Foundation Administrators. Jeśli nie jesteś członkiem, system wyświetli okno dialogowe komunikatu o błędzie informujące o tym, że nie masz wystarczających uprawnień do wykonania operacji.

Gdy system zweryfikuje Twoje uprawnienia, uruchamia polecenie destroy. To polecenie usuwa wszystkie odwołania do plików, zestawy półek i oczekujące zmiany. Rzeczywiste zniszczenie plików, które jest trwałym usunięciem, odbywa się następnym razem, gdy zawartość, do której nie odwołuje się już usługa Azure DevOps Server, zostanie wyczyszczona. Można również określić /startcleanup opcję czyszczenia plików natychmiast po uruchomieniu tf destroy.

Jeśli uruchomisz tf destroy bez określenia /i i /preview, system wyświetli konsolę Tak lub Nie monitować o każdą wartość filespec. W przeciwnym razie można określić Tak na wszystkie.

  • Jeśli nie określisz /keephistory, zostanie wyświetlony monit o wyświetlenie interakcyjnego tekstu z ostrzeżeniem o oczekujących zmianach, jeśli istnieją. Tekst interakcyjny wskazuje /preview, jeśli chcesz uzyskać więcej informacji o zmianach.

  • Jeśli określisz /keephistory, zostanie również wyświetlony monit Tak, Nielub Tak do wszystkich tekstu. W przypadku wybrania Tak lub Tak do wszystkichzostanie uruchomiony proces zniszczenia, a ścieżki serwera do zniszczonych elementów zostaną wyświetlone w oknie wiersza polecenia.

Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: ...

Jeśli określono wartość versionspec jako tip, ścieżki serwera wyświetlane w oknie wiersza polecenia obejmują identyfikatory usuwania. Na przykład Destroyed: $/Test1/MyProject;X123 mogą pojawić się w oknie wiersza polecenia.

Jeśli używasz opcji /preview, pliki nie zostaną zniszczone, ale tekst wiersza polecenia wyświetli pliki, które zostaną zniszczone. Jeśli na przykład wprowadzisz tf destroy /preview $/Test1/MyProject/MyProject/Program.cs w wierszu polecenia, w oknie polecenia zostanie wyświetlony następujący tekst:

Destroyed: $/Test1/MyProject/MyProject/Program.cs

Jednak plik nie został zniszczony, ponieważ użyto opcji /preview.

Aby uzyskać więcej informacji na temat korzystania z narzędzia wiersza polecenia tf, zobacz Używanie poleceń kontroli wersji programu Team Foundation.

Wpływ /keephistory na inne operacje kontroli wersji

Jeśli określisz opcję /keephistory, aby zachować historię zniszczonych plików, pliki są traktowane jako zniszczone przez następujące operacje tfVC:

  • Zmień zawartość. Jeśli spróbujesz zmienić zawartość zniszczonego pliku, na przykład edycję lub gałąź, system wystawia komunikat o błędzie informujący o tym, że zawartość została zniszczona.

  • Branch, merge lub unshelve. Jeśli spróbujesz rozgałęzić, scalić lub usunąć zniszczone elementy, system wyświetli komunikat o błędzie informujący o tym, że zawartość elementów została zniszczona.

Niszczenie poprzednio usuniętych elementów

Jeśli element został już usunięty, identyfikator usunięcia jest do niego dołączony i powoduje zmianę nazwy pliku.

Wyszukiwanie kodu nie obsługuje powiadomień tf destroy, więc użycie tf destroy dla repozytoriów TFVC nie spowoduje automatycznego usunięcia plików z indeksu wyszukiwania. W rezultacie te pliki są wyświetlane w wynikach wyszukiwania kodu. Aby uniknąć tych scenariuszy plików duchów, usuń pliki przed operacją tf destroy.

Przykłady

Poniższy przykład trwale usuwa plik a.cs.

tf destroy $/proj/pi/a.cs

W poniższym przykładzie usunięto folder Folder:

tf delete $/MyTeamProject/aFolder

Aby zniszczyć usunięty element aFolder, wprowadź polecenie w wierszu polecenia:

tf destroy $/MyTeamProject/aFolder;x123

gdzie x123 jest identyfikatorem usunięcia.