Partilhar via


Comando Diferença

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

Visual Studio 2019 | Visual Studio 2022

O comando Team Foundation Version Control (TFVC) difference compara e, se possível, exibe diferenças entre dois arquivos, arquivos em duas pastas ou um conjunto de prateleiras e um arquivo local ou de servidor.

Pré-requisitos

Para usar o difference comando, você deve ter a permissão de leitura para todos os itens especificados definida como Permitir. Para obter mais informações, consulte Permissões TFVC padrão.

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

Argumento

Descrição

<itemspec>

Obrigatório. 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 caminhos de servidor locais e do Azure DevOps.

Para obter mais informações sobre como o TFVC analisa o para determinar quais itens estão dentro do escopo, consulte Usar comandos de controle de versão do itemspec Team Foundation.

O difference comando não suporta caracteres curinga.

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

<itemspec2>

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

<filetype>

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

<format>

Usado com a /format opção 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 Observações .

<versionspec>

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

<shelvesetowner>

Identifica o proprietário do conjunto de prateleiras por 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 conjunto de prateleiras. Você pode criar mais de um conjunto de prateleiras com o mesmo nome no servidor que está executando o TFVC, desde que um usuário diferente possua cada conjunto de prateleiras.

<shelveset_itemspec>

Especifica o nome de uma pasta ou arquivo na prateleira para comparar com a versão base do shelveset.

<username>

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

Opções

Opção

Descrição

/type

Substitui todas as codificações detetadas 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 usa a versão do espaço de trabalho se você não fornecer um versionspecarquivo .

Em vez de usar o /version sinalizador, você pode especificar versões anexando 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 format argumento.

/ignorespace

Não realça as diferenças de espaço em branco entre os ficheiros 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 do ignorespace, que trata oito espaços de forma idêntica a um. No entanto, se você usar a opção e o /ignoreeol 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 /ignoreeol opção ignoraria isso como uma diferença.

/ignorecase

Não destaca diferenças na caixa de letras 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 pelo 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 conjunto de prateleiras para comparar com a versão do servidor de DevOps do Azure na qual o conjunto de prateleiras se baseia.

Esta opção não pode ser combinada com um itemspec argumento. Para comparar itens de prateleira individuais, você pode fornecer um shelveset_itemspecarquivo .

/noprompt

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

/configure

Invoca a caixa de diálogo Configurar Ferramentas do 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 com TFVC.

Observações

Nota

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

Você pode usar o difference comando 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 conjunto de prateleiras no servidor de DevOps do Azure.

Você pode usar o difference comando para comparar arquivos versionados e não versionados.

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 quiser comparar dois arquivos cujas codificações não são as mesmas, você pode mascarar temporariamente ou substituir a propriedade de codificação de um arquivo usando a /type opção.

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

Se você especificar dois nomes de arquivo, os dois arquivos serão comparados. Em vez de usar o sinalizador /version , você pode especificar versões anexando 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 difference:

  • 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 de header.h com a versão na qual header.h é baseado.

  • Se você incluir um versionspec no , itemspeccomo tf difference header.h;LBeta1, o TFVC compara 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 finais do intervalo serão comparadas.

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

Tipos de formato de saída

O format parâmetro, usado com a /format opção, 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 externo. Por padrão, diffmerge.exe é iniciado.

  • Brief formatar imprime se os ficheiros que estão a ser comparados diferem.

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

  • RCS format é semelhante ao /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 Comparação (linha de comando).

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

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

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

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

  • Unix O tipo de saída é derivado do formato de saída de comando baseado em diff 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 fez check-out do servidor de DevOps do Azure.

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 do 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 ao rótulo release e a versão que pertence ao changeset 3200.

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

-or-

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

O exemplo a seguir exibe a diferença entre as versões de e271.cs que um usuário chamado Pat engavetou na prateleira PeerCodeReview8 e a versão de prateleira base na qual eles basearam suas alterações. A saída também mostra os tipos de alterações pendentes em relação ao momento em que e271.cs o usuário foi arquivado.

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

O exemplo a seguir exibe as diferenças entre todos os arquivos no shelveset e a PeerCodeReview2 versão base shelveset desses arquivos.

c:\projects> tf difference /shelveset:PeerCodeReview2