Compartilhar via


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

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Você pode usar o comando TFVC (Controle de Versão) do Team Foundation tf rollback para reverter os efeitos de um ou mais conjuntos de alterações em um ou mais itens controlados por versão. Esse comando não remove os conjuntos de alterações do histórico de versão de um item. Em vez disso, esse comando cria um conjunto de alterações pendentes em seu workspace que negam os efeitos dos conjuntos de alterações especificados.

Pré-requisitos

Para usar esse comando, tenha as permissões Leitura, Check-Oute Check-In definidas para Permitir. Para obter mais informações, consulte permissões TFVC padrão.

Sintaxe

tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]

Parâmetros

Argumentos

de argumento

descrição

<ChangesetFrom>~<ChangesetTo>

Use esse argumento com a opção /changeset para especificar os conjuntos de alterações que você deseja reverter. Você pode especificar os conjuntos de alterações das seguintes maneiras:

  • Um único conjunto de alterações, por exemplo, /changeset:C11
  • Um intervalo de conjuntos de alterações, por exemplo, /changeset:C7~C20
  • Uma data, por exemplo, /changeset:D09/30/09
  • Um intervalo de datas, por exemplo, /changeset:D09/23/09~D10/07/09
  • O conjunto de alterações mais recente, /changeset:Tip ou /changeset:T

<ItemSpec>

Use esse argumento para especificar um ou mais itens que você deseja reverter. Se você usar a opção /toversion, deverá especificar esse argumento.

Para obter mais informações sobre como o TFVC analisa as especificações de item, consulte Usar comandos de controle de versão do Team Foundation.

Nota

Você pode especificar mais de um argumento itemspec.

<VersionSpec>

O valor fornecido pelo usuário para a opção /version e a opção /toversion.

Use esse argumento com a opção /toversion para reverter um arquivo para seu estado em um conjunto de alterações específico. Você pode especificar a versão das seguintes maneiras:

  • Um único conjunto de alterações, por exemplo, /toversion:C32
  • Uma data à meia-noite, por exemplo, /toversion:D06/19/09
  • Uma data e uma hora, por exemplo, /toversion:D06/19/09T14:32
  • Um rótulo, por exemplo, /toversion:LTestLabel
  • A versão no workspace mapeada para o diretório atual, /toversion:W
  • A versão em um workspace específico, por exemplo, /toversion:WResolveRIConflicts;AKerry

Para obter mais informações sobre como o TFVC analisa o versionspec, consulte Usar comandos de controle de versão do Team Foundation.

Opções

opção

descrição

/changeset

Use essa opção para especificar um ou mais conjuntos de alterações específicos que você deseja negar.

/keepmergehistory

Essa opção só terá efeito se um ou mais dos conjuntos de alterações que você está revertendo incluirem uma de branch ou mesclagem alteração. Especifique essa opção se você quiser mesclagens futuras entre a mesma origem e o mesmo destino para excluir as alterações que você está revertendo.

/lock

Especifique essa opção para impedir que outros usuários faça check-in ou faça check-out de itens até concluir a reversão de todas as alterações associadas. Para obter mais informações, consulte Noções básicas sobre os tipos de bloqueio.

Opções de bloqueio:

  • None. Inadimplência. Nenhum bloqueio é aplicado. Se o arquivo que você está revertendo tiver sido bloqueado, essa opção removerá o bloqueio.
  • Checkin. Bloqueia um item até liberar o bloqueio executando um check-in. Outros usuários podem fazer check-out do item especificado, mas os usuários não podem fazer check-in de revisões até que o bloqueio seja removido. Não é possível bloquear um arquivo que já esteja bloqueado.
  • Checkout. Impede que os usuários faça check-in ou faça check-out de um item bloqueado até que você remova o bloqueio fazendo um check-in.

/login

Para obter informações sobre essa opção, consulte Usar opções para modificar como um comando funciona.

/noprompt

Use essa opção para suprimir as caixas de diálogo que, de outra forma, apareceriam durante essa operação.

/recursive

Especifique essa opção se desejar que a operação inclua itens em subpastas.

/toversion

Especifique essa opção para reverter um arquivo para seu estado em um conjunto de alterações específico. Ao usar essa opção, você nega o efeito de todos os conjuntos de alterações que foram aplicados desde a versão especificada.

/version

Especifica a versão atual dos arquivos e pastas que você deseja reverter.

Observações

O comando tf rollback nega o efeito de cada conjunto de alterações especificado para cada item especificado. A tabela a seguir lista como a operação nega cada tipo de alteração.

Tipo de alteração revertida Tipo de alteração de reversão
adicionar, branchou de undelete excluir
editar editar
de codificação de codificação
renomear/mover renomear/mover
excluir de undelete
mesclagem Alteração que nega as alterações mescladas no branch atual.

A lista a seguir fornece alguns exemplos de alterações resultantes do comando rollback:

  • Você reverte um conjunto de alterações no qual ocorreu uma adicionar alteração. A operação de reversão causa uma alteração de reversão e uma exclusão alteração.

  • Você reverte o conjunto de alterações 521 no qual ocorreu uma editar alteração. A operação de reversão causa uma alteração reversão e uma editar alteração que nega a editar alteração no conjunto de alterações 521.

  • No conjunto de alterações 132, você mesclou de $/BranchA/File1.txt para $/BranchB/File1.txt. As alterações nessa mesclagem incluíram editar alterações nos conjuntos de alterações 92 e 104. No conjunto de alterações 162, você reverte o conjunto de alterações 132, que resulta em uma alteração reversão e uma editar alteração para $/BranchB/File1.txt que nega a edição de alterações nos conjuntos de alterações 92 e 104.

Códigos de saída

Um código de saída da tabela a seguir aparece depois que você executa o comando tf rollback.

Sair do código Descrição
0 A operação reverteu todos os itens com êxito.
1 A operação reverteu pelo menos um item com êxito, mas não pôde reverter um ou mais itens.
100 A operação não pôde reverter nenhum item.

Exemplos

O exemplo a seguir nega o efeito do conjunto de alterações 23 em todos os itens que foram alterados nesse conjunto de alterações:

c:\workspace> tf rollback /changeset:C23

O exemplo a seguir nega o efeito do conjunto de alterações 23 no arquivo a.txt:

c:\workspace> tf rollback /changeset:C23 a.txt

O exemplo a seguir altera o conteúdo de a.txt para corresponder à versão que foi verificada com o conjunto de alterações 23:

c:\workspace> tf rollback /toversion:C23 a.txt

O exemplo a seguir altera o conteúdo do OurTeamProject para corresponder ao último conjunto de alterações aplicado em ou antes da meia-noite de 31 de agosto de 2009:

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Opção de exemplo /keepmergehistory

Ao reverter um conjunto de alterações que incluía uma ramificação ou uma alteração de mesclagem, você geralmente deseja mesclagem futura entre a mesma origem e o mesmo destino para incluir essas alterações. No entanto, você poderá usar a opção /keepmergehistory se quiser mesclagens futuras entre a mesma origem e o mesmo destino para excluir conjuntos de alterações que foram englobados em uma operação de mesclagem anterior. Por exemplo:

  1. Em 30 de junho de 2009, você faz uma mesclagem completa de todos os itens de $/BranchA/ para $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    Você faz check-in dessa mesclagem como parte do conjunto de alterações 292.

  2. Em julho, você faz várias alterações $/BranchA/Util.cs. Essas alterações são englobadas nos conjuntos de alterações 297, 301 e 305.

  3. Em 1º de agosto de 2009, você mescla $/BranchA/Util.cs para $/BranchB/Util.cs.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    Você faz check-in da alteração como parte do conjunto de alterações 314. O resultado dessa operação é que as edições feitas nos conjuntos de alterações 297, 301 e 305 para $/BranchA/Util.cs agora também são aplicadas a $/BranchB/Util.cs.

  4. Uma semana depois, você percebe que as edições feitas para $/BranchA/Util.cs em julho não são apropriadas para $/BranchB/Util.cs. Você pode usar o comando rollback para negar essas alterações. Quando você usa o comando rollback para reverter uma mesclagem alteração ou uma alteração de branch , você tem uma decisão a tomar.

    • Se você quiser que as alterações feitas para $/BranchA/Util.cs em julho sejam novamente aplicadas a $/BranchB/Util.cs em mesclagens futuras, insira o seguinte comando:

      c:\workspace> tf rollback /changeset:314
      
    • Se você quiser que as alterações feitas para $/BranchA/Util.cs em julho nunca sejam reaplicadas para $/BranchB/Util.cs em mesclagens futuras, insira o seguinte comando:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Algumas semanas depois, você mescla $/BranchA/ em $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Se você omitiu a opção /keepmergehistory quando reverteu, a alteração mesclagem se aplica a $/BranchB/Util.cs todos os conjuntos de alterações que foram aplicados a $/BranchA/Util.cs desde o conjunto de alterações 292, incluindo os conjuntos de alterações 297, 301 e 305. Em outras palavras, a mesclagem desfaz a alteração de reversão.

    • Se você incluiu a opção /keepmergehistory ao reverter, a operação de mesclagem se aplica a $/BranchB/Util.cs todos os conjuntos de alterações que foram aplicados a $/BranchA/Util.cs desde o conjunto de alterações 292, excluindo os conjuntos de alterações 297, 301 e 305. Em outras palavras, a mesclagem não desfaz a alteração de reversão. Portanto, o conteúdo em brancha pode não corresponder ao conteúdo em branchb.