Partager via


Commande Différence

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

Visual Studio 2019 | Visual Studio 2022

Team Foundation Version Control (TFVC) difference commande compare, et, si possible, affiche les différences entre deux fichiers, fichiers dans deux dossiers ou un ensemble de rayons et un fichier local ou serveur.

Conditions préalables

Pour utiliser la commande difference, disposez de l’autorisation Lecture pour tous les éléments spécifiés définis sur Autoriser. Pour plus d’informations, consultez autorisations TFVC par défaut.

Syntaxe

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

Paramètres

Arguments

argument

Description

<itemspec>

Obligatoire. Spécifie l’élément à comparer. Si aucune version ou chemin d’accès n’est spécifié, la version actuelle de l’espace de travail est supposée. Accepte les chemins de serveur locaux et Azure DevOps.

Pour plus d’informations sur la façon dont TFVC analyse l'itemspec pour déterminer quels éléments se trouvent dans l’étendue, consultez Utiliser les commandes de contrôle de version Team Foundation.

La commande difference ne prend pas en charge les caractères génériques.

Ce paramètre ne peut pas être combiné avec l’option /shelveset.

<itemspec2>

Optionnel. Élément auquel le itemspec doit être comparé. Si vous ne fournissez pas de deuxième itemspec, la dernière version du serveur Azure DevOps de l’élément est utilisée.

<filetype>

Fournit une valeur pour l’option /type. Vous pouvez spécifier binary ou text et un numéro de page de codes ou le nom convivial d’une page de codes.

<format>

Utilisé avec l’option /format pour spécifier un format de sortie de l’un des types suivants :

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

Ces formats de sortie sont expliqués dans la section Remarques.

<versionspec>

Valeur fournie par l’utilisateur pour l’option /version. Pour plus d’informations sur la façon dont TFVC analyse une spécification de version pour déterminer quels éléments se trouvent dans son étendue, consultez Utiliser les commandes de contrôle de version Team Foundation.

<shelvesetowner>

Identifie le propriétaire du jeu de rayons par nom d’utilisateur. Si une valeur pour ce paramètre n’est pas fournie, l’utilisateur actuel est supposé.

<shelvesetname>

Spécifie le nom d’un ensemble de rayons. Vous pouvez créer plusieurs rayons avec le même nom sur le serveur qui exécute TFVC tant qu’un utilisateur différent possède chaque ensemble de rayons.

<shelveset_itemspec>

Spécifie le nom d’un dossier ou d’un fichier dans le jeu d’étagères à comparer à la version du jeu d’étagères de base.

<username>

Fournit une valeur à l’option /login. Vous pouvez spécifier une valeur de nom d’utilisateur comme DOMAIN\username ou username.

Options

option

Description

/type

Remplace les encodages détectés et utilise l’encodage spécifié pour présenter les fichiers au moteur de différenciation.

/version

Spécifie la version du fichier ou du dossier à comparer. Par défaut, TFVC utilise la version de l’espace de travail si vous ne fournissez pas de versionspec.

Au lieu d’utiliser l’indicateur /version, vous pouvez spécifier des versions en ajoutant un point-virgule et un spécificateur de version à la fin de chaque nom de fichier.

/format

Spécifie un format de sortie spécifié par l’argument format.

/ignorespace

Ne met pas en évidence les différences d’espace blanc entre les fichiers comparés.

/ignoreeol

Ignore les différences entre les nouveaux caractères de ligne dans deux fichiers ou versions de fichiers. /ignoreeol fonctionne différemment de ignorespace, qui traite huit espaces identiquement à un. Toutefois, si vous utilisez l’option /ignoreeol et Fichier A a deux nouveaux caractères de ligne entre des zones de texte inchangées et fichier B en a une, le résultat s’affiche comme une différence. Si les deux fichiers n’ont qu’une nouvelle ligne, mais fichier A utilise \r\n comme nouvelle ligne et Fichier B utilise \n, l’option /ignoreeol ignorerait cela comme une différence.

/ignorecase

Ne met pas en évidence les différences de casse de lettre entre les fichiers comparés.

/recursive

Compare les différences entre le dossier actif et tous ses sous-dossiers.

/options

Spécifie une chaîne d’option pour que l’outil soit appelé par difference. Pour plus d’informations, consultez Associer un type de fichier à un outil de différence et Associer un type de fichier à un outil de fusion.

/shelveset

Spécifie un ensemble de rayons à comparer à la version du serveur Azure DevOps sur laquelle repose l’ensemble de rayons.

Cette option ne peut pas être combinée avec un argument itemspec. Pour comparer des éléments de étagères individuels, vous pouvez fournir un shelveset_itemspec.

/noprompt

Supprime toutes les boîtes de dialogue qui s’affichent autrement pendant l’achèvement de cette opération.

/configure

Appelle la boîte de dialogue Configurer les outils utilisateur à partir de l’interface utilisateur de Visual Studio. Pour plus d’informations, consultez Associer un type de fichier à un outil de différence.

/login

Spécifie le nom d’utilisateur et le mot de passe pour authentifier l’utilisateur auprès de TFVC.

Remarques

Note

Vous pouvez taper tf diff ou tf difference à la ligne de commande pour exécuter cette commande.

Vous pouvez utiliser la commande difference pour comparer et, si possible, afficher les différences entre :

  • Deux fichiers différents ou deux versions du même fichier.

  • Un ou plusieurs des éléments d’un dossier.

  • Un, certains ou tous les éléments d’un ensemble de rayons sur le serveur Azure DevOps.

Vous pouvez utiliser la commande difference pour comparer les fichiers versionnés et non versionnés.

TFVC classe tous les fichiers par type. Les fichiers texte peuvent être fusionnés et comparés, côte à côte et ligne par ligne, tant que les deux fichiers ont le même encodage. Si vous souhaitez comparer deux fichiers dont les encodages ne sont pas identiques, vous pouvez masquer ou remplacer temporairement la propriété d’encodage d’un fichier à l’aide de l’option /type.

Les fichiers binaires peuvent être comparés, mais ne peuvent pas être fusionnés. Lorsque vous transmettez un ou plusieurs fichiers binaires à la commande difference, TFVC indique si les différences existent entre elle et l’élément auquel il est comparé. Pour plus d’informations sur la façon dont TFVC différencie et traite les fichiers de différents types, consultez Gestion des types de fichiers.

Si vous spécifiez deux noms de fichiers, les deux fichiers sont comparés. Au lieu d’utiliser l’indicateur /version, vous pouvez spécifier des versions en ajoutant un point-virgule et un spécificateur de version à la fin de chaque nom de fichier.

Si vous passez une seule itemspec à la commande de différence :

  • Si vous ne fournissez pas de versionspec, votre version actuelle de l’espace de travail de l’élément est comparée à la version de l’espace de travail de base, par défaut. Par exemple, tf difference header.h compare la version actuelle de header.h à la version sur laquelle header.h est basé.

  • Si vous incluez un versionspec dans votre itemspec, par exemple tf difference header.h;LBeta1, TFVC compare cette version à la version actuelle de votre espace de travail sur le disque.

  • Si vous spécifiez une plage de versions telles que /version:C1~C4, les versions du fichier sur les deux points de terminaison de la plage sont comparées.

Pour plus d’informations sur l’utilisation de l’utilitaire de ligne de commande tf, consultez Utiliser les commandes de contrôle de version Team Foundation.

Types de format de sortie

Le paramètre format, utilisé avec l’option /format, spécifie de nombreux formats de sortie différents. Les types de sortie suivants sont disponibles :

  • Visual type de format ouvre une application de différence externe. Par défaut, diffmerge.exe est lancée.

  • Brief format imprime si les fichiers comparés diffèrent.

  • Context format fournit des lignes de contexte pour les différences dans les fichiers. Ce format est dérivé du format de sortie diff -c basé sur UNIX.

  • RCS format est similaire à /format:unix, sauf que les lignes de contexte ne sont pas fournies. Aucun transfert spécial pour une fin de trait manquante à la fin du fichier est fourni.

  • SS est le format de sortie de différence par défaut pour Visual SourceSafe. Pour plus d’informations, consultez Diff (ligne de commande).

  • SS_SideBySide est le format de sortie côte à côte par défaut pour Visual SourceSafe.

  • SS_Unix est similaire au format de sortie /format:unix, mais /format:ss_unix inclut des lignes de contexte et /format:unix ne le fait pas.

  • Unified format est dérivé du format de sortie diff -u basé sur UNIX. /format:context répète des lignes de contexte identiques entre les chaînes de différence, mais /format:unified ne le fait pas.

    Unified format produit une nouvelle ligne de différence unifiée (@@ ... @@) uniquement lorsque la distance à la chaîne de différence suivante est supérieure au nombre de lignes de contexte.

  • Unix type de sortie est dérivé du format de sortie de commande unix diff.

    Le format de sortie Unix est construit de la manière suivante :

    <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
    

Exemples

L’exemple suivant affiche les différences entre la version locale de 314.cs et la version de l’espace de travail de 314.cs qui est la version du fichier extrait à partir du serveur Azure DevOps.

c:\projects>tf difference 314.cs

L’exemple suivant affiche tous les fichiers qui ont été modifiés dans le dossier src , mais n’affiche pas les fichiers qui ont été modifiés dans les sous-dossiers de src.

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

L’exemple suivant affiche les différences entre le jeu de modifications 3 et le jeu de modifications 8 de 1254.cs.

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

Les exemples suivants affichent les différences entre la version de 314.cs qui appartiennent à l’étiquette release et la version qui appartient au jeu de modifications 3200.

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

-ou-

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

L’exemple suivant montre comment afficher la différence entre les versions de e271.cs qu’un utilisateur nommé Pat a enregistré dans l’ensemble de étagères PeerCodeReview8 et la version de l’ensemble de étagères de base sur laquelle ils ont basé leurs modifications. La sortie affiche également les types de modifications en attente par rapport à e271.cs lorsque l’utilisateur a enregistré.

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

L’exemple suivant affiche les différences entre tous les fichiers du jeu d’étagères PeerCodeReview2 et la version de l’ensemble de rayons de base de ces fichiers.

c:\projects> tf difference /shelveset:PeerCodeReview2