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
/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:
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.
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.
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.
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 comandorollback
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
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.