Comando Diferença

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

O comando Controle de Versão do Team Foundation (TFVC) difference compara e, se possível, exibe diferenças entre dois arquivos, arquivos em duas pastas ou um check-in particular e um arquivo local ou de servidor.

Pré-requisitos

Para usar o comando difference, você deve ter a permissão Leitura para todos os itens especificados definida como Permitir. Para saber mais, consulte Permissões padrão do TFVC.

Sintaxe

tf diff[erence] itemspec [/version:versionspec] [/type:filetype] 
[/format:format [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] 
[/options][/noprompt][/login:username,[password]]
tf diff[erence] itemspec itemspec2 [/type:filetype] [/format: format] 
[/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options] [/noprompt][/login:username,[password]]
tf diff[erence] [/shelveset:shelvesetname[;shelvesetowner]] 
shelveset_itemspec [/type:filetype] 
[/format: format] [/ignorespace] [/ignoreeol] [/ignorecase] 
[/recursive] [/options] [/noprompt][/login:username,[password]]
tf diff[erence] /configure

Parâmetros

Argumentos

Argument

Descrição

<itemspec>

Obrigatórios. Especifica o item a ser comparado. Se nenhuma versão ou caminho for especificado, a versão atual do espaço de trabalho será assumida. Aceita os caminhos do servidor local e do Azure DevOps.

Para saber mais sobre como o TFVC analisa o itemspec a fim de definir quais itens estão dentro do escopo, confira Usar os comandos de controle de versão do Team Foundation.

O comando difference não dá suporte a caracteres curinga.

Esse parâmetro não pode ser combinado com a opção /shelveset .

<itemspec2>

Opcional. O item ao qual o itemspec deve ser comparado. Se você não fornecer um segundo itemspec, a versão mais recente do servidor do Azure DevOps do item será usada.

<filetype>

Fornece um valor para a opção /type. Você pode especificar binary ou text e um número de página de código ou o nome amigável de uma página de código.

<format>

Usado com a opção /format para especificar um formato de saída de um dos seguintes tipos:

  • Visual
  • Brief
  • Context
  • RCS
  • SS
  • SS_SideBySide
  • SS_Unix
  • Unified
  • Unix

Esses formatos de saída são explicados na seção Comentários.

<versionspec>

O valor fornecido pelo usuário para a opção /version. Para obter mais informações sobre como o TFVC analisa a especificação de versão para determinar quais itens estão dentro do escopo, consulte Usar comandos do controle de versão do Team Foundation.

<shelvesetowner>

Identifica o proprietário do check-in particular pelo nome de usuário. Se um valor para esse parâmetro não for fornecido, o usuário atual será assumido.

<shelvesetname>

Especifica o nome de um check-in particular. Você pode criar mais de um check-in particular com o mesmo nome no servidor que está executando o TFVC, desde que um usuário diferente possua cada check-in particular.

<shelveset_itemspec>

Especifica o nome de uma pasta ou arquivo no check-in particular para comparar com a versão base do check-in particular

<username>

Fornece um valor para a opção /login. Você pode especificar um valor de nome de usuário como DOMAIN\username ou username.

Opções

Opção

Descrição

/type

Substitui quaisquer codificações detectadas e usa a codificação especificada para apresentar os arquivos ao mecanismo de diferenciação.

/version

Especifica a versão do arquivo ou pasta a ser comparada. Por padrão, o TFVC usará a versão do espaço de trabalho se você não fornecer um versionspec.

Em vez de usar o sinalizador /version, você pode especificar versões acrescentando um ponto e vírgula e um especificador de versão ao final de cada nome de arquivo.

/format

Especifica um formato de saída especificado pelo argumento format.

/ignorespace

Não realça as diferenças de espaço em branco entre os arquivos comparados.

/ignoreeol

Ignora as diferenças entre os novos caracteres de linha em dois arquivos ou versões de arquivo. /ignoreeol funciona de forma diferente de ignorespace, que trata oito espaços de forma idêntica a um. No entanto, se você usar a opção /ignoreeol e o Arquivo A tiver dois novos caracteres de linha entre áreas inalteradas do texto e o Arquivo B tiver um, o resultado será exibido como uma diferença. Se ambos os arquivos tiverem apenas uma nova linha, mas o Arquivo A usar \r\n como uma nova linha e o Arquivo B usar \n, a opção /ignoreeol ignorará isso como uma diferença.

/ignorecase

Não realça as diferenças no uso de letras maiúsculas e minúsculas entre os arquivos comparados.

/recursive

Compara as diferenças entre a pasta atual e todas as suas subpastas.

/options

Especifica uma cadeia de caracteres de opção para a ferramenta a ser invocada por difference. Para obter mais informações, consulte Associar um tipo de arquivo a uma ferramenta de diferença e Associar um tipo de arquivo a uma ferramenta de mesclagem.

/shelveset

Especifica um check-in particular a ser comparado com a versão do servidor do Azure DevOps na qual o check-in particular se baseia.

Essa opção não pode ser combinada com um argumento itemspec. Para comparar itens individuais do check-in particular, você pode fornecer um shelveset_itemspec.

/noprompt

Suprime todas as caixas de diálogo que, de outra forma, seriam exibidas durante a conclusão desta operação.

/configure

Invoca a caixa de diálogo Configurar Ferramentas de Usuário da interface do usuário do Visual Studio. Para obter mais informações, consulte Associar um tipo de arquivo a uma ferramenta de diferença.

/login

Especifica o nome de usuário e a senha para autenticar o usuário no TFVC.

Comentários

Observação

Você pode digitar tf diff ou tf difference na linha de comando para executar esse comando.

Você pode usar o comando difference para comparar e, se possível, exibir diferenças entre:

  • Dois arquivos diferentes ou duas versões do mesmo arquivo.

  • Um ou mais itens em uma pasta.

  • Um, alguns ou todos os itens em um check-in particular no servidor do Azure DevOps.

Você pode usar o comando difference para comparar arquivos com versão e sem versão.

O TFVC categoriza todos os arquivos por tipo. Os arquivos de texto podem ser mesclados e comparados, lado a lado e linha por linha, desde que ambos os arquivos tenham a mesma codificação. Se você quiser comparar dois arquivos cujas codificações não são iguais, poderá mascarar ou substituir temporariamente a propriedade de codificação de um arquivo usando a opção /type.

Arquivos binários podem ser comparados, mas não podem ser mesclados. Quando você passa um ou mais arquivos binários para o comando difference, o TFVC indica se existem diferenças entre ele e o item ao qual ele está sendo comparado. Para obter mais informações sobre como o TFVC diferencia e trata arquivos de diferentes tipos, consulte Gerenciando tipos de arquivo.

Se você especificar dois nomes de arquivo, os dois arquivos serão comparados. Em vez de usar o sinalizador /versão, você pode especificar versões acrescentando um ponto e vírgula e um especificador de versão ao final de cada nome de arquivo.

Se você passar apenas um itemspec para o comando Diferença:

  • Se você não fornecer um versionspec, sua versão atual do espaço de trabalho do item será comparada com a versão base do espaço de trabalho, por padrão. Por exemplo, tf difference header.h compara a versão atual do header.h com a versão na qual header.h se baseia.

  • Se você incluir um versionspec em seu itemspec, como tf difference header.h;LBeta1, o TFVC comparará essa versão com a versão atual do espaço de trabalho no disco.

  • Se você especificar um intervalo de versões como /version:C1~C4, as versões do arquivo nos dois pontos de extremidade do intervalo serão comparadas.

Para saber mais sobre como usar o utilitário de linha de comando tf, consulte Usar comandos do controle de versão do Team Foundation.

Tipos de formato de saída

O parâmetro format, usado com a opção /format, especifica muitos formatos de saída diferentes. Os seguintes tipos de saída estão disponíveis:

  • Visual O tipo de formato abre um aplicativo de diferença externa. Por padrão, diffmerge.exe é iniciado.

  • Brief O formato imprime se os arquivos que estão sendo comparados se diferem.

  • Context O formato fornece linhas de contexto para as diferenças nos arquivos. Esse formato é derivado do formato de saída diff -c baseado em UNIX.

  • RCS O formato é semelhante a /format:unix, exceto que as linhas de contexto não são fornecidas. Nenhuma entrega especial para um marcador de fim de linha ausente no final do arquivo é fornecida.

  • SSé o formato de saída de diferença padrão para Visual SourceSafe. Para obter mais informações, consulte Diff (linha de comando).

  • SS_SideBySide é o formato de saída lado a lado padrão do Visual SourceSafe.

  • SS_Unix é semelhante ao formato de saída /format:unix, mas /format:ss_unix inclui linhas de contexto e /format:unix não.

  • Unified formato é derivado do formato de saída diff -u baseado em UNIX. /format:context repete linhas de contexto idênticas entre as cadeias de caracteres de diferença, mas /format:unified não.

    Unified O formato produz uma nova linha de cadeia de caracteres de diferença unificada (@@ ... @@) somente quando a distância para a próxima cadeia de caracteres de diferença é maior que o número de linhas de contexto.

  • Unix O tipo de saída é derivado do formato de saída de comando diff baseado em UNIX.

    O Unix formato de saída é construído da seguinte maneira:

    <metadataline>
    "< " line prefix for lines from the first file
    "---" line
    "> " line prefix for lines from the second file
    
    <metadataline> can be one of these possibilities:
    #a#,# -- add lines from line # in file1 into file2 at lines #->#
    #,#d# -- delete lines from line # -> # in file 1 from file2 at line #
    #,#c#,# -- change lines from line # -> # in file1 into the lines in file2 at line # -> #
    
    # signs separated by commas indicate a line range.
    # signs before the character indicate line numbers in the first file.
    # signs after the character indicate line numbers in the second file.
    
    /// No end of line marker at the end of the file:
    /// \ No newline at end of file
    

Exemplos

O exemplo a seguir exibe as diferenças entre a versão local do 314.cs e a versão do espaço de trabalho do 314.cs que é a versão do arquivo que foi verificada no servidor do Azure DevOps.

c:\projects>tf difference 314.cs

O exemplo a seguir exibe todos os arquivos que foram alterados na pasta src , mas não exibe arquivos que foram alterados em subpastas de src.

c:\projects>tf difference src /format:visual

O exemplo a seguir exibe as diferenças entre o conjunto de alterações 3 e o conjunto de alterações 8 de 1254.cs.

c:\projects>tf difference /version:C3~C8 1254.cs

Os exemplos a seguir exibem as diferenças entre a versão do 314.cs que pertence à etiqueta release e a versão que pertence ao conjunto de alterações 3200.

c:\projects>tf difference 314.cs;Lrelease 314.cs;C3200

-ou-

c:\projects>tf difference 314.cs;Lrelease~C3200

O exemplo a seguir exibe a diferença entre as versões do e271.cs em que um usuário chamado Pat fez um check-in particular PeerCodeReview8 e a versão base do check-in particular em que baseou suas alterações. A saída também mostra os tipos de alterações pendentes de e271.cs quando o usuário tiver feito check-in particular.

c:\projects> tf difference /shelveset:PeerCodeReview8;Pat e271.cs

O exemplo a seguir exibe as diferenças entre todos os arquivos no PeerCodeReview2 check-in particular e a versão base do check-in particular desses arquivos.

c:\projects> tf difference /shelveset:PeerCodeReview2