Compartilhar via


Comando destroy (Controle de Versão do Team Foundation)

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Use o comando tf destroy para destruir ou excluir permanentemente arquivos com controle de versão no TFVC (Controle de Versão do Team Foundation).

Observação

Não é permitido excluir um repositório TFVC dentro do Azure Devops depois que ele é criado. O comando tf destroy apenas destruirá, ou excluirá permanentemente, arquivos ou pastas controlados por versão, mas não excluirá o repositório TFVC. Ele ainda aparecerá na lista de opções com a mensagem excluída.

Às vezes, você precisa limpar sistemas de controle de versão. Por exemplo, se alguns arquivos estiverem infectados por um vírus do computador, será necessário removê-los permanentemente do controle de versão. Não destrua arquivos que ainda são necessários. A ação de destruição não pode ser revertida.

Antes de usar o comando tf destroy sem a opção /keephistory, exclua os arquivos que você quer destruir. Para saber mais, confira Excluir arquivos e pastas do controle de versão.

Depois de excluir os arquivos, sincronize o depósito do TFVC. Se você não fizer isso, o depósito não ficará sincronizado com os itens destruídos.

Pré-requisitos

Para usar o comando destroy, é necessário participar do grupo de segurança Administradores do Team Foundation. Para saber mais, consulte Permissões padrão do TFVC.

Sintaxe

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

Parâmetros

Argumentos

Argument

Descrição

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

Especifica o caminho do servidor do arquivo ou a pasta a ser destruído. Use vários valores itemspec para excluir diversos itens. Por exemplo, tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3.

Não há compatibilidade com caminhos locais.

<versionspec>

Fornece uma versão como C58 para as opções /keephistory ou /stopat. Os valores permitidos são date, tip ou um conjunto de alterações específico. Para obter mais informações sobre como o TFVC analisa a especificação de versão para determinar quais itens estão dentro do escopo, consulte Usar comandos do controle de versão do Team Foundation.

<username>

Mostra um valor para a opção /login. É possível especificar um valor username como DOMAIN\username ou username.

TeamProjectCollectionUrl

A URL da coleção de projetos que contém arquivos que você deseja destruir, por exemplo, http://myserver:8080/tfs/DefaultCollection.

Opções

Opção

Descrição

/keephistory

Opcional. Especifica que o histórico de um arquivo será preservado mesmo quando seu conteúdo for destruído. Essa opção não pode ser combinada com /preview.

/stopat

Opcional. Só pode ser usado se /keephistory for especificado também.

Especifica a versão do arquivo e os arquivos que se seguem depois disso, para os quais o histórico é preservado.

A versão padrão para /stopat é tip (T) para a versão de check-in mais recente de um item.

Você não pode usar valores versionspec de rótulo ou workspace a fim de especificar um item para a opção /stopat.

/preview

Exibe os arquivos que seriam destruídos na janela do prompt de comando. Quando tf destroy é executado no modo de pré-visualização, os arquivos não são realmente destruídos.

Observação

O texto na janela do prompt de comando exibe a palavra Destruído com cada arquivo que seria destruído. No entanto, o arquivo não é realmente destruído quando a opção /preview é usada.

/startcleanup

Força o processo de limpeza de metadados do TFVC a iniciar imediatamente após a conclusão da exclusão. Se o usuário não especificar /startcleanup, o processo de limpeza de metadados destruídos ocorrerá quando a manutenção do banco de dados limpar todos os arquivos que não são mais referenciados pelo Azure DevOps Server. Por padrão, a limpeza é agendada a cada cinco dias. Sete dias após a limpeza dos metadados do TFVC, o conteúdo é excluído por outro processo de limpeza. Por padrão, esse processo de limpeza de conteúdo é executado uma vez por dia.

/noprompt ou /i

Especifica que a destruição de arquivos não é interativa. /i é um alias para /noprompt.

/silent

Especifica que, quando você destrói arquivos ou pastas, a saída não é gravada na janela do prompt de comando.

/login

Especifica o nome de usuário e a senha para autenticar o usuário no TFVC.

/collection

Especifica a coleção de projetos.

Comentários

Quando você usa tf destroy para destruir arquivos de controle de versão, a camada de aplicativo do TFVC recebe a solicitação de destruição e verifica se você é membro do grupo de segurança Administradores do Team Foundation. Se você não for membro, o sistema exibirá uma caixa de diálogo com uma mensagem de erro que informa que você não tem permissões suficientes para executar a operação.

Depois que o sistema verifica suas permissões, ele executa o comando destroy. Esse comando exclui todas as referências, check-ins particulares e alterações pendentes do arquivo. A exclusão permanente de arquivos ocorre quando o Azure DevOps Server executa uma tarefa de limpeza para remover o conteúdo não referenciado. Também é possível pode especificar a opção /startcleanup para limpar os arquivos imediatamente após a execução de tf destroy.

Se você executar tf destroy sem especificar /i e /preview, o sistema exibirá um prompt de console Sim ou Não para cada valor filespec. Caso contrário, especifique Sim para todos.

  • Se você não especificar /keephistory, verá um prompt com um texto interativo que avisa sobre alterações pendentes, se elas existirem. O texto interativo apontará para /preview se você quiser mais informações sobre as alterações.

  • Se você especificar /keephistory, também verá um prompt com os texto Sim, Não ou Sim para todos. Se você selecionar Sim ou Sim para todos, o processo de destruição será iniciado e os caminhos do servidor para os itens destruídos aparecerão na janela do prompt de comando.

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

Se você especificou o valor versionspec como tip, os caminhos do servidor exibidos na janela do prompt de comando incluirão IDs de exclusão. Por exemplo, Destroyed: $/Test1/MyProject;X123 pode aparecer na janela do prompt de comando.

Se você usar a opção /preview, os arquivos não serão destruídos, mas o texto da linha de comando exibirá os arquivos que seriam destruídos. Por exemplo, se você inserir tf destroy /preview $/Test1/MyProject/MyProject/Program.cs na linha de comando, a janela de comando exibirá este texto:

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

No entanto, o arquivo não é realmente destruído, porque você usou a opção /preview.

Para saber mais sobre como usar o utilitário de linha de comando tf, consulte Usar comandos do controle de versão do Team Foundation.

Efeitos de /keephistory em outras operações de controle de versão

Se você especificar a opção /keephistory para manter o histórico de arquivos destruídos, os arquivos serão tratados como destruídos pelas seguintes operações do TFVC:

  • Alterar conteúdo. Se você tentar alterar o conteúdo de um arquivo destruído, por exemplo, editar ou ramificar, o sistema emitirá uma mensagem de erro informando que o conteúdo foi destruído.

  • Ramificar, mesclar ou desfazer check-in particular. Se você tentar ramificar, mesclar ou desfazer check-in particular de itens destruídos, o sistema emitirá uma mensagem de erro informando que o conteúdo dos itens foi destruído.

Destruir itens excluídos anteriormente

Se um item já tiver sido excluído, uma ID de exclusão será anexada a ele e resultará em uma alteração de nome de arquivo.

A pesquisa de código não processa notificações tf destroy; portanto, o uso de tf destroy para repositórios TFVC não excluirá automaticamente os arquivos do índice de pesquisa. Desse modo, esses arquivos aparecem nos resultados da pesquisa de código. Para evitar esses cenários de arquivos fantasmas, exclua arquivos antes da operação tf destroy.

Exemplos

O exemplo a seguir exclui permanentemente o arquivo a.cs.

tf destroy $/proj/pi/a.cs

O exemplo a seguir exclui uma pasta, aFolder:

tf delete $/MyTeamProject/aFolder

Para destruir o item excluído aFolder, insira na linha de comando:

tf destroy $/MyTeamProject/aFolder;x123

em que x123 é a ID de exclusão.