Partilhar via


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

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Visual Studio 2019 | do Visual Studio 2022

Você pode usar o comando Team Foundation Version Control (TFVC) tf rollback para reverter os efeitos de um ou mais conjuntos de alterações em um ou mais itens com controle de versão. Este comando não remove os conjuntos de alterações do histórico de versões de um item. Em vez disso, esse comando cria um conjunto de alterações pendentes em seu espaço de trabalho que negam os efeitos dos conjuntos de alterações especificados.

Pré-requisitos

Categoria Requerimentos
Permissões As permissões de Leitura, Check-out e Check-in definidas como Permitir.

Para obter mais informações, consulte Default TFVC permissions.

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

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
  • Uma série 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 do item, consulte Usar comandos de controle de versão do Team Foundation.

Observação

Você pode especificar mais de um itemspec argumento.

<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
  • Um encontro à 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 espaço de trabalho que é mapeada para o diretório atual, /toversion:W
  • A versão em um espaço de trabalho 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 esta 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 incluírem uma ramificação ou mesclar alterar. Especifique essa opção se desejar que futuras mesclagens entre a mesma origem e o mesmo destino excluam as alterações que você está revertendo.

/lock

Especifique essa opção para impedir que outros usuários façam check-in ou check-out de itens até que você termine de reverter todas as alterações associadas. Para obter mais informações, consulte Compreender os tipos de bloqueio.

Opções de bloqueio:

  • None. Inadimplência. Nenhum bloqueio é aplicado. Se o ficheiro que está a reverter tiver sido bloqueado, esta opção remove o bloqueio.
  • Checkin. Bloqueia um item até que você libere o bloqueio realizando um check-in. Outros usuários podem fazer check-out do item especificado, mas não podem fazer check-in de revisões até que o bloqueio seja removido. Não é possível bloquear um ficheiro que já esteja bloqueado.
  • Checkout. Impede que os usuários façam check-in ou 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 quaisquer caixas de diálogo que apareceriam durante esta 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.

Comentários

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, ramificaçãoou cancelar a exclusão excluir
editar editar
codificação codificação
renomear/mover renomear/mover
excluir cancelar a exclusão
mesclar Mudança que nega qualquer mudança incorporada ao ramo 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 um adicionar alteração. A operação de reversão causa uma reversão alteração e uma excluir alteração.

  • Você reverte o conjunto de alterações 521 no qual ocorreu uma edição alteração. A operação de reversão causa uma reversão alteração e um editar alteração que nega a editar alterar 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 edição alterações nos conjuntos de alterações 92 e 104. No conjunto de alterações 162, você reverte o conjunto de alterações 132, o que resulta em uma reversão alteração e uma editar alterar para $/BranchB/File1.txt que nega o editar 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 de executar o comando tf rollback.

Código de saída 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 conseguiu reverter um ou mais itens.
100 A operação não conseguiu 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 do a.txt para corresponder à versão que fez check-in com o conjunto de alterações 23:

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

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

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

Exemplo de opção /keepmergehistory

Quando você reverte um conjunto de alterações que incluiu uma ramificação ou uma alteração de mesclagem, geralmente deseja que futuras mesclagens entre a mesma origem e o mesmo destino incluam essas alterações. No entanto, você pode usar a opção /keepmergehistory se quiser futuras mesclagens entre a mesma origem e o mesmo destino para excluir conjuntos de alterações que foram incluídos 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
    

    Faça check-in desta mesclagem como parte do conjunto de alterações 292.

  2. Em julho, você faz várias alterações $/BranchA/Util.cs. Essas alterações estão incluídas 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 que você fez em $/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 ramificação alteração, você tem uma decisão a tomar.

    • Se desejar que as alterações feitas no $/BranchA/Util.cs em julho sejam reaplicadas a $/BranchB/Util.cs em futuras mesclagens, digite o seguinte comando:

      c:\workspace> tf rollback /changeset:314
      
    • Se desejar que as alterações feitas no $/BranchA/Util.cs em julho nunca sejam reaplicadas a $/BranchB/Util.cs em futuras mesclagens, digite 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 mesclagem alteração 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 quando reverteu, a operação de mesclagem se aplicará 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.