Commande Difference

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

Visual Studio 2019 | Visual Studio 2022

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

Prérequis

Pour utiliser la commande difference, l’autorisation Lecture doit être définie sur Autoriser pour tous les éléments spécifiés. 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 d’accès au serveur local et Azure DevOps.

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

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>

facultatif. Élément auquel doit itemspec être comparé. Si vous ne fournissez pas de seconde 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 code ou le nom convivial d’une page de code.

<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 les spécifications d’une version pour déterminer quels éléments se trouvent à sa portée, consultez Utiliser les commandes de gestion de version de Team Foundation.

<shelvesetowner>

Identifie le propriétaire du jeu de réservations avec un nom d’utilisateur. Si aucune valeur n’est fournie pour ce paramètre, l’utilisateur actuel est supposé.

<shelvesetname>

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

<shelveset_itemspec>

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

<username>

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

Options

Option

Description

/type

Remplace tous 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’espaces blancs entre les fichiers comparés.

/ignoreeol

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

/ignorecase

Ne met pas en évidence les différences de casse des lettres 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 l’outil à appeler 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 jeu de réservations à comparer à la version du serveur Azure DevOps sur laquelle se base le jeu de réservations.

Cette option ne peut pas être combinée avec l’argument itemspec. Pour comparer des éléments individuels d’un jeu de réservations, vous pouvez fournir un shelveset_itemspec.

/noprompt

Supprime toutes les boîtes de dialogue qui sinon s’afficheraient pendant 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.

Notes

Notes

Vous pouvez taper tf diff ou tf difference sur 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 jeu de réservations sur le serveur Azure DevOps.

Vous pouvez utiliser la commande difference pour comparer les fichiers avec version et sans version.

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 les mêmes, 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 s’il existe des différences entre celui-ci 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 ne transmettez qu’une seule itemspec à la commande Difference :

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

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

  • Si vous spécifiez une plage de versions telles que /version:C1~C4, les versions du fichier aux 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 gestion de version Team Foundation.

Types de format de résultat

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

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

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

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

  • Le format RCS est similaire à /format:unix, sauf que les lignes de contexte ne sont pas fournies. Aucune remise spéciale pour un marqueur de fin de ligne manquant à la fin du fichier n’est fournie.

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

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

  • SS_Unix est similaire au format de résultat /format:unix, mais /format:ss_unix inclut des lignes de contexte et /format:unix non.

  • Le format Unified est dérivé du format de résultat diff -u basé sur UNIX. /format:context répète des lignes de contexte identiques entre les chaînes de différence, contrairement à /format:unified.

    Le format Unified génère une nouvelle ligne de chaîne de différence unifiée (@@ ... @@) uniquement lorsque la distance par rapport à la chaîne de différence suivante est supérieure au nombre de lignes de contexte.

  • Le type de résultat Unix est dérivé du format de résultat de la commande diff basée sur UNIX .

    Le format de résultat 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 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 l’ensemble de modifications 3 et l’ensemble de modifications 8 de 1254.cs.

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

Les exemples suivants illustrent les différences entre la version 314.cs qui appartient à l’étiquette release et la version qui appartient à l’ensemble 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 la différence entre les versions d’e271.cs qu’un utilisateur nommé Pat a conservées dans le jeu de réservations PeerCodeReview8 et la version de jeu de réservations de base sur laquelle il a basé ses modifications. Le résultat montre également les types de modifications en attente par rapport à e271.cs au moment où l’utilisateur a effectué la réserve.

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

L’exemple suivant affiche les différences entre tous les fichiers du jeu de réservations PeerCodeReview2 et la version du jeu de réservations de base de ces fichiers.

c:\projects> tf difference /shelveset:PeerCodeReview2