Utilizar comandos de controlo de versões do Team Foundation

Serviços do Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server | de 2019 TFS 2018

Visual Studio 2019 | Visual Studio 2022

Pode utilizar comandos de controlo de versões para efetuar quase todas as tarefas do Controlo de Versões do Team Foundation (TFVC) que pode realizar no Visual Studio. Também pode utilizar comandos de controlo de versões para realizar várias tarefas que não podem ser efetuadas no Visual Studio. Para executar comandos de controlo de versões a partir de uma linha de comandos ou de um script, utilize a tf.exe ferramenta .

Executar um comando

Para iniciar a linha de comandos do Visual Studio, em Iniciar do Windows, selecione a Linha de Comandos do Programador para VS2022 ou atalho de versão anterior.

Nota

Para o Visual Studio 2019 e versões posteriores, o tf.exe binário já não se encontra numa localização fixa 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 utilizar tf.exe, não codize um caminho para o ficheiro com base no caminho de instalação do Visual Studio.

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

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

Configurar o computador de desenvolvimento e gerir áreas de trabalho

A área de trabalho é uma cópia local da base de código da sua equipa. Uma vez que é uma cópia local no seu computador de desenvolvimento, pode desenvolver e testar o código isoladamente até estar pronto para dar entrada do seu trabalho. Eis alguns comandos para gerir a área de trabalho:

Para obter mais informações, veja os seguintes recursos:

Desenvolver a sua aplicação

Utilize estes comandos para desenvolver a sua aplicação sob controlo de versões com a sua equipa:

Para obter mais informações, consulte Desenvolver a sua aplicação no controlo de versões do Team Foundation.

Suspender o seu trabalho

Por vários motivos, por vezes tem de reservar parte ou todo o seu trabalho em curso. Para suspender e retomar o seu trabalho e gerir os conjuntos de prateleiras, utilize estes comandos:

Para obter mais informações, consulte Suspender o seu trabalho e gerir os conjuntos de prateleiras.

Contribuir com o seu trabalho

Utilize o checkin comando para dar entrada do código na base de código da equipa:

  • Comando Checkin: dá entrada de alterações pendentes em ficheiros ou pastas no servidor.

Para obter mais informações, consulte Dar entrada do seu trabalho na base de código da equipa.

Gerir ficheiros e resolver problemas

Utilize os recursos nas secções seguintes para gerir ficheiros.

Ver e gerir ficheiros e pastas de controlo de versões

Para obter mais informações, veja Utilizar o Explorador de Controlo de Código Fonte para gerir ficheiros sob controlo de versões.

Ver e gerir versões anteriores

Para obter mais informações, consulte Ver e gerir versões anteriores.

Comparar pastas e ficheiros

Para obter mais informações, consulte Ver e gerir versões anteriores.

Resolver conflitos de ficheiros

  • Comando Resolver: resolve conflitos entre itens na área de trabalho e no servidor.

Para obter mais informações, veja Resolver conflitos de Controlo de Versões do Team Foundation.

Trabalhar com bloqueios de controlo de versões

Para obter mais informações, veja Trabalhar com bloqueios de controlo de versões.

Isolar o risco

Utilize os seguintes comandos para isolar o risco através de ramos:

Para obter mais informações, veja Utilizar ramos para isolar riscos no Controlo de Versões do Team Foundation.

Administrar controlo de versões

Utilize os seguintes comandos para gerir o sistema de controlo de versões:

Para obter mais informações, veja Configurar as definições de finalização da compra.

Obter ajuda sobre comandos de controlo de versões

Utilize os seguintes comandos para obter informações detalhadas sobre os comandos de controlo de versões:

Compreender a sintaxe do comando

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

Argumentos obrigatórios e opcionais

São necessários argumentos não parênteses retos. [Parênteses retos] indicam argumentos opcionais que não são necessários para concluir um comando. No entanto, alguns argumentos opcionais têm predefinições que são aplicadas ao comando, mesmo que não especifique a opção.

Argumentos exclusivos

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

Argumentos literal e substituíveis

Os itens que não estão entre parênteses retos são opções que inclui texto literal. Os itens entre parênteses angulares (< e >) são argumentos que tem de substituir por carateres reais para executar um comando.

Atalhos de comando e aliases

Alguns comandos suportam atalhos. Por exemplo, pode chamar o comando Eliminar com tf delete ou tf del.

Exemplo

Por exemplo, considere o comando Final da Compra:

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

Este exemplo inclui os seguintes argumentos:

  • <item-spec>: tem de substituir este argumento por uma especificação de item que identifique os itens que está a dar saída.
  • Os seguintes argumentos são opcionais. Se não os fornecer, nenhum dos respetivos efeitos se aplica ao comando :
    • /lock:(none|checkin|checkout): se não especificar a opção /lock , o sistema utiliza /lock:none por predefinição. Caso contrário, pode especificar uma das outras opções de bloqueio.
    • /recursive: se pretender dar saída de múltiplos itens numa pasta de forma recursiva, tem de especificar este texto literal de opção.
    • /login:<username>, <password>: se quiser executar o comando como outro utilizador, tem de especificar o texto literal da opção /login e substituir <username> pelo nome do utilizador. Se necessário, substitua pela <password> palavra-passe do utilizador.

Especificar os itens afetados por um comando

Pode utilizar especificações de itens e especificações de versão para especificar que itens são afetados por um comando.

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

Utilize uma especificação de item para especificar os itens afetados por um comando. Pode especificar itens num computador cliente ou no servidor do Azure DevOps. Pode utilizar carateres universais, como * e ?.

Argumentos de especificação do item de cliente

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

  • Uma pasta, por exemplo, c:\code\SiteApp\Main\SolutionA\.
  • Um ficheiro, por exemplo, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Vários ficheiros, por exemplo, c:\code\SiteApp\Main\SolutionA\*.cs.
  • Um caminho UNC (Universal Naming Convention), como \\myshare\code\SiteApp\Main.

Argumentos de especificação do item de servidor

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

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

Normalmente, utiliza argumentos de especificação do item de servidor quando precisa de executar um comando em itens que não estão no computador cliente. Por exemplo, imagine que está a trabalhar numa máquina de desenvolvimento. Se precisar de obter alguns dados do histórico de revisões sobre alguns itens que estão numa coleção de projetos na qual não trabalha, pode utilizar o seguinte comando:

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

Argumentos de especificação de vários itens

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

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

Este comando dá saída de program.cs e program2.c.

Utilizar um argumento de especificação de versão para especificar as versões afetadas dos itens

Utilize uma especificação de versão para especificar a versão dos itens afetados por um comando. Para fornecer uma especificação de versão, pode:

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

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

Quando utiliza o comando Histórico ou o comando Diferença, pode especificar um intervalo de versões ao separar as versões com um til, por exemplo:

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

Utilize a seguinte sintaxe para especificar uma especificação de versão:

Tipo Syntax Descrição Exemplos Resultado
Conjunto de alterações [C]<version-number> Especifica itens com base num número de conjunto de alterações. Se um item no âmbito não tiver sido modificado no conjunto de alterações especificado, o sistema utiliza a versão mais recente do item que ocorreu antes do conjunto de alterações especificado. 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 ficheiro. Caso contrário, obtém a versão mais recente do readme.txt antes da versão 8.
Etiqueta L<label> Especifica os itens aos quais uma etiqueta é aplicada. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
O primeiro exemplo obtém a versão do readme.txt que foi identificada como JulyHotFix. A segunda obtém a versão de todos os itens etiquetados (e elimina esses itens não etiquetados) na área de trabalho tal como existiam quando o conjunto de alterações com o nome LastKnownGood foi criado. Pode utilizar o código no segundo exemplo como parte de um processo de compilação automatizado.
Data e hora D<yyyy-mm-ddTxx:xx>

ou

D<mm/dd/yyyy>

ou

Qualquer formato suportado por .NET Framework.

ou

Qualquer um dos formatos de data suportados no computador local.
Especifica um conjunto de alterações que foi criado numa data especificada numa hora específica. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
O primeiro exemplo atualiza a área de trabalho para corresponder ao código base tal como existia a 22 de março de 2022 à meia-noite. A segunda atualiza a área de trabalho para corresponder ao código base tal como existia a 22 de março de 2022 às 9:00. Para obter mais informações sobre .NET Framework formatos de data e hora suportados, consulte Cadeias de formato de data e hora DateTime e Standard.
Área de trabalho atual W Especifica a versão na área de trabalho. - -
Área de trabalho especificada W<workspace-name>; <workspace-owner> Especifica a versão numa área de trabalho especificada. tf get /version:WResolveRIConflicts;PatW O exemplo especifica a versão na área ResolveRIConflicts de trabalho que PatW é proprietária.
Dica T Especifica a versão mais recente. - -

Utilizar opções para modificar o funcionamento de um comando

Pode utilizar algumas opções comuns para modificar o funcionamento de um comando.

Utilize a opção /noprompt para suprimir pedidos de entrada de dados e redirecionar dados de saída

Utilize a opção /noprompt para suprimir pedidos de entrada de dados e redirecionar dados de saída para a janela da linha de comandos. Esta opção pode ser útil quando precisa de utilizar comandos de controlo de versões num script em que:

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

Quando utiliza esta opção, o sistema:

  • Suprime todos os pedidos de entrada:

    • Não são feitas perguntas na janela da linha de comandos. Por exemplo, quando utiliza o comando Anular com esta opção, o sistema não lhe pede para confirmar se pretende anular as alterações.
    • O Windows e as caixas de diálogo não são apresentados. Por exemplo, pode utilizar esta opção com o comando Checkin. O sistema não apresenta a caixa de diálogo Check In para 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 a linha de comandos. Por exemplo, pode utilizar esta opção com o comando Histórico. Os dados são apresentados na janela da linha de comandos em vez da janela Histórico.

Utilize a opção /login para especificar credenciais

Utilize a opção /login para especificar a conta de utilizador do servidor do Azure DevOps para executar um comando. Esta opção pode ser útil quando trabalha no computador de outro membro da equipa.

Por exemplo, digamos que está a trabalhar no computador de desenvolvimento do membro da equipa. Utilize o comando Bloquear para desbloquear um ficheiro que bloqueou anteriormente:

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

Se quiser evitar que a palavra-passe seja apresentada na linha de comandos, pode introduzir o comando sem a palavra-passe:

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

Depois de introduzir este comando, o sistema pede-lhe para introduzir a palavra-passe numa caixa de diálogo que mascara a sua entrada.

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

Importante

Como melhor prática, utilize a opção /lock com discrição. Informe os seus colegas de equipa sobre o motivo pelo qual está a bloquear um item e quando planeia remover o bloqueio.

Utilize a opção /lock para aplicar ou remover um bloqueio ao mesmo tempo que executa outro comando, como Adicionar ou Editar.

/lock:(none|checkin|checkout)

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

  • None: não é colocado nenhum bloqueio num item. Se já existir um bloqueio, este será removido.

  • Checkin ou Checkout: É aplicado um bloqueio. Para obter mais informações, veja Compreender os tipos de bloqueio.

Nota

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

  • Se outros utilizadores tiverem bloqueado qualquer um dos itens especificados, a operação de bloqueio falhará.
  • Se já existir uma alteração pendente no item especificado, o sistema ignora este comutador. Neste caso, tem de utilizar o comando Bloquear para alterar um bloqueio num item.

Utilizar atalhos de opção

Pode abreviar as seguintes opções.

Opção

Alias de Opção

/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 controlo de versão devolvem os seguintes códigos de saída:

Código de Saída

Definição

0

Com êxito.

1

Sucesso parcial. Pelo menos algo, ou possivelmente tudo, não conseguiu.

2

Comando não reconhecido.

100

Nada foi bem sucedido.

Por exemplo, digamos que executa o seguinte comando:

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

Se um dos ficheiros que está a tentar verificar não existir no servidor, o comando devolve 1 para indicar êxito parcial.