Usar comandos de 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 comandos de controle de versão para realizar quase todas as tarefas de Controle de Versão do Team Foundation (TFVC) que você pode fazer no Visual Studio. Você também pode usar comandos de controle de versão para realizar várias tarefas que não podem ser feitas no Visual Studio. Você usa a ferramenta tf.exe em um prompt de comando ou de um script.

Executar um comando

Para iniciar o prompt de comando do Visual Studio, em Iniciar do Windows, selecione o Prompt de Comando do Desenvolvedor para VS2022 ou o atalho de versão anterior.

Observação

Para o Visual Studio 2019 e versões posteriores, o binário tf.exe não está mais em um local fixo no caminho de instalação do Visual Studio como em algumas versões anteriores, por exemplo, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Se o script usar tf.exe, não codifique um caminho para o arquivo com base no caminho de instalação do Visual Studio.

Na maioria dos casos, você executa o comando de controle de versões no contexto de um diretório mapeado no workspace. Por exemplo, $/SiteApp/Main/ está mapeado para c:\\code\\SiteApp\\Main\\. Para obter a versão mais recente de todos os itens no workspace, use o seguinte comando:

c:\code\SiteApp\Main\SolutionA>tf get

Configurar seu computador de desenvolvimento e gerenciar workspaces

Seu workspace é uma cópia local da base de código da equipe. Como é uma cópia local presente no seu computador de desenvolvimento, você pode desenvolver e testar o código isoladamente até estar pronto para fazer check-in do seu trabalho. Veja alguns comandos que permitem gerenciar seu workspace:

Para saber mais, consulte os recursos a seguir:

Desenvolver seu aplicativo

Use estes comandos para desenvolver seu aplicativo no controle de versões com sua equipe:

Para obter mais informações, consulte Desenvolver seu aplicativo no controle de versão do Team Foundation.

Suspender seu trabalho

Por vários motivos, às vezes você precisa deixar de lado alguns ou todos os seus trabalhos em andamento. Para suspender e retomar seu trabalho e gerenciar check-ins particulares, use estes comandos:

Para obter mais informações, consulte Suspender seu trabalho e gerenciar seus check-ins particulares.

Contribuir com seu trabalho

Use o comando checkin para fazer check-in do código na base de código da equipe:

  • Comando Checkin: Faz check-in em alterações pendentes de arquivos ou pastas no servidor.

Para obter mais informações, consulte Realizar check-in do seu trabalho para a base de código da equipe.

Gerenciar arquivos e solucionar problemas

Use os recursos nas seções a seguir para gerenciar arquivos.

Visualizar e gerenciar pastas e arquivos do controle de versões

Para mais informações, consulte Usar o Gerenciador de Controle do Código-Fonte para gerenciar arquivos sob controle de versão.

Exibir e gerenciar versões anteriores

Para obter mais informações, consulte Exibir e gerenciar versões anteriores.

Comparar pastas e arquivos

Para obter mais informações, consulte Exibir e gerenciar versões anteriores.

Resolver conflitos de arquivos

  • Comando Resolve: resolve conflitos entre itens em seu workspace e no servidor.

Para obter mais informações, consulte Resolver conflitos de controle de versão do Team Foundation.

Trabalhar com bloqueios de controle de versão

Para obter mais informações, consulte Trabalhar com bloqueios de controle de versão.

Isolar riscos

Use estes comandos para isolar riscos através de ramificações:

Para obter mais informações, consulte Usar ramificações para isolar o risco no Controle de Versão do Team Foundation.

Administrar controle de versão

Use estes comandos para gerenciar o sistema de controle de versões:

Para obter mais informações, consulte Definir configurações de check-out.

Obter ajuda com os comandos de controle de versão

Use estes comandos para obter mais informações sobre os comandos de controle de versão:

Compreender a sintaxe dos comandos

A sintaxe de cada comando aparece na parte superior de cada artigo de referência.

Argumentos necessários e opcionais

Os argumentos sem colchetes são necessários. [Colchetes] indica argumentos opcionais que não são necessários para executar um comando. No entanto, alguns argumentos opcionais têm padrões que se aplicam ao comando mesmo quando você não especifica essa opção.

Argumentos exclusivos

Quando as opções são separadas por um pipe (|), você pode especificar uma das opções.

Argumentos textuais e substituíveis

Itens que não estão entre colchetes são opções que você inclui textualmente. Itens entre parênteses (< e >) são argumentos que você deve substituir por caracteres reais para executar um comando.

Atalhos e alias de comandos

Alguns comandos permitem usar atalhos. Por exemplo, você pode chamar o comando Delete usando o atalho tf delete ou tf del.

Exemplo

Por exemplo, considere o comandoCheckout:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

Este exemplo inclui os seguintes argumentos:

  • <item-spec>: você deve substituir esse argumento por uma especificação de item que identifique os itens que você está fazendo check-out.
  • Os argumentos a seguir são opcionais. Se você não for fornecê-los, nenhum dos efeitos deles se aplicará ao comando:
    • /lock:(none|checkin|checkout): se você não especificar a opção /lock , o sistema usará /lock:none por padrão. Caso contrário, você pode especificar uma das opções de bloqueio.
    • /recursive: se quiser fazer check-out de diversos itens recursivamente em uma pasta, especifique essa opção textual.
    • /login:<username>, <password>: se você quiser executar o comando como outro usuário, deverá especificar a opção /login verbatim e substituir <username> pelo nome do usuário. Se necessário, substitua <password> pela senha do usuário.

Especificar os itens afetados por um comando

Você pode usar especificações de item e especificações de versão para especificar quais itens são afetados por um comando.

Usar um argumento de especificação de item para especificar itens afetados

Use uma especificação de item para especificar os itens afetados por um comando. Você pode especificar itens em um computador cliente ou no servidor do Azure DevOps. Você pode usar caracteres curinga como * e ?.

Argumentos de especificação de item do cliente

Um argumento de especificação de item do cliente especifica um caminho para itens em um computador cliente, como:

  • Uma pasta, por exemplo, c:\code\SiteApp\Main\SolutionA\.
  • Um arquivo, por exemplo, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Vários arquivos, por exemplo, c:\code\SiteApp\Main\SolutionA\*.cs.
  • Um caminho UNC (convenção de nomenclatura universal), como \\myshare\code\SiteApp\Main.

Argumentos de especificação de item do servidor

Um argumento de especificação de item do servidor especifica um caminho para itens no servidor do Azure DevOps, como:

  • Uma pasta, por exemplo, $/SiteApp/Main/SolutionA.
  • Um arquivo, por exemplo, $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Vários arquivos, por exemplo, $/SiteApp/Main/SolutionA/*.cs.

Normalmente, você usa argumentos de especificação de item de servidor quando precisa executar um comando em itens que não estão no computador cliente. Por exemplo, digamos que você esteja trabalhando em um computador de desenvolvimento. Se você precisar obter alguns dados do histórico de revisão sobre alguns itens que estão em uma coleção de projetos em que você não trabalha, é possível usar o seguinte comando:

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Vários argumentos de especificação de item

Para alguns comandos, você pode especificar vários argumentos de especificação de item, por exemplo:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Este comando faz o check out de program.cs e program2.c.

Usar um argumento de especificação da versão para especificar versões afetadas de itens

Use uma especificação de versão para especificar as versões dos itens afetados por um comando. Para fornecer uma especificação de versão, você pode:

  • Usar a opção /version , por exemplo, /version:C44.

  • Acrescente a especificação de versão a uma especificação de item com um ponto-e-vírgula, por exemplo, program1.cs;C44.

Ao usar o comando Histórico ou o comando Difference, você pode especificar um intervalo de versões separando as versões com um bloco, por exemplo:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Use a sintaxe a seguir para definir uma especificação de versão:

Tipo Sintaxe Descrição Exemplos Result
Conjunto de alterações [C]<version-number> Especifica itens com base no número do conjunto de alterações. Se o item do escopo não foi modificado no conjunto de alterações especificado, o sistema usa a versão mais recente do item ocorrida antes desse conjunto de alterações. Você pode omitir C se especificar apenas um número. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Se readme.txt foi modificado no conjunto de alterações 8, o código de exemplo obtém essa versão do arquivo. Caso contrário, obtém a versão mais recente do arquivo readme.txt antes da versão 8.
Rótulo L<label> Especifica itens aos quais um rótulo é aplicado. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
O primeiro exemplo obtém a versão de readme.txt que foi rotulada como JulyHotFix. O segundo recupera a versão de todos os itens rotulados (e exclui esses itens não rotulados) no workspace, já que eles existiam quando o conjunto de alterações rotulado como LastKnownGood foi criado. Você pode usar o código no segundo exemplo como parte de um processo de build automatizado.
Data e hora D<yyyy-mm-ddTxx:xx>

ou

D<mm/dd/yyyy>

ou

Qualquer formato compatível com .NET Framework.

ou

Qualquer um dos formatos de data compatível permitido no computador local.
Especifica um conjunto de alterações que foi criado em uma data determinada em um momento específico. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
O primeiro exemplo atualiza o workspace para corresponder à base de código como ela existia em 22 de março de 2022 à meia-noite. O segundo atualiza o workspace para corresponder à base de código como ela existia em 22 de março de 2022 às 9h. Para obter mais informações sobre formatos de data e hora compatíveis com o .NET Framework, consulte DateTime e Cadeias de caracteres de formato de data e hora padrão.
Workspace atual W Especifica a versão no workspace. - -
Workspace especificado W<workspace-name>; <workspace-owner> Especifica a versão no workspace especificado. tf get /version:WResolveRIConflicts;PatW O exemplo determina a versão no ResolveRIConflicts workspace que PatW possui.
Dica T Especifica a versão mais recente. - -

Usar opções para modificar o funcionamento do comando

Você pode usar algumas opções comuns para modificar o funcionamento de um comando.

Use a opção /noprompt para suprimir solicitações de entrada de dados e redirecionar dados de saída

Use a opção /noprompt para omitir solicitações de entrada de dados e redirecionar dados de saída para a janela do prompt de comando. Essa opção pode ser útil quando você precisa usar comandos de controle de versão em um script em que:

  • O comando prossegue sem intervenção de um usuário.
  • Os dados estão disponíveis para o script executar operações, como análise ou captura.

Quando você usa essa opção, o sistema:

  • Omite todas as solicitações de entrada:

    • As perguntas não são feitas na janela do prompt de comando. Por exemplo, quando você usa o comando Desfazer com essa opção, o sistema não solicita que você confirme se deseja desfazer as alterações.
    • Janelas e caixas de diálogo não são exibidas. Por exemplo, você pode usar essa opção com o comando Checkin. O sistema não exibe a caixa de diálogo Check-In para você confirmar itens e itens de trabalho associados. Em vez disso, o sistema verifica os itens sem confirmação.
  • Redireciona os dados de saída para o prompt de comando. Por exemplo, você pode usar essa opção com o comando History. Os dados são exibidos na janela do prompt de comando, e não na janela Histórico.

Usar a opção /login para especificar credenciais

Use a opção /login para especificar a conta de usuário do servidor do Azure DevOps para executar um comando. Essa opção pode ser útil quando você trabalhar no computador de outro membro da equipe.

Por exemplo, digamos que você esteja trabalhando no computador de desenvolvimento do membro da equipe. Use o comando Lock para desbloquear um arquivo que você bloqueou anteriormente:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Se você quiser evitar que sua senha apareça no prompt de comando, insira o comando sem a senha:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

Depois de inserir esse comando, o sistema solicitará que você insira sua senha em uma caixa de diálogo que mascara sua entrada.

Usar a opção /lock para aplicar ou remover um bloqueio

Importante

Como prática recomendada, use a opção /lock com discrição. Informe seus colegas de equipe por que você está bloqueando um item e quando planeja remover o bloqueio.

Use a opção /lock para aplicar ou remover um bloqueio enquanto executa outro comando, como Add ou Edit.

/lock:(none|checkin|checkout)

O comando /lock usa as seguintes opções:

  • None: não há bloqueio em um item. Se o bloqueio estiver ativo, ele é removido.

  • Checkin ou Checkout: um bloqueio é aplicado. Para obter mais informações, consulte Noções básicas sobre tipos de bloqueio.

Observação

Em alguns casos, a operação de bloqueio pode falhar:

  • Se outros usuários tiverem bloqueado qualquer um dos itens especificados, a operação de bloqueio falhará.
  • Se já houver uma alteração pendente no item especificado, o sistema ignorará essa opção. Nesse caso, você deve usar o comando Lock para alterar um bloqueio em um item.

Usar atalhos de opções

Você pode abreviar as opções a seguir.

Opção

Alias Opcional

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Compreender os códigos de saída

Os comandos de controle de versão mostram os seguintes códigos de saída:

Código de Saída

Definição

0

Êxito.

1

Êxito parcial. Pelo menos algo, ou possivelmente tudo, não teve êxito.

2

Comando não reconhecido.

100

Falha total.

Por exemplo, digamos que você execute o seguinte comando:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Se um dos arquivos para os quais você está tentando fazer check-out não existe no servidor, o sistema mostra 1 para indicar êxito parcial.