Comando difference

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

Visual Studio 2019 | Visual Studio 2022

El comando difference de Control de versiones de Team Foundation (TFVC) compara y, si es posible, muestra las diferencias entre dos archivos, los archivos de dos carpetas o un conjunto de cambios agregados pendientes de confirmación y un archivo local o de servidor.

Requisitos previos

Para usar el comando difference, hay que tener el permiso Leer establecido en Permitir en todos los elementos especificados. Para obtener más información, vea Permisos de TFVC predeterminados.

Sintaxis

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

Descripción

<itemspec>

Necesario. Especifica el elemento que se va a comparar. Si no se especifica ninguna versión o ruta de acceso, se da por hecho que se trata de la versión actual del área de trabajo. Se aceptan rutas de acceso tanto locales como de Azure DevOps Server.

Para obtener más información sobre cómo TFVC analiza itemspec para determinar qué elementos están dentro de su ámbito, vea Uso de comandos de Control de versiones de Team Foundation.

El comando difference no admite caracteres comodín.

Este parámetro no se puede combinar con la opción /shelveset.

<itemspec2>

Opcional. Elemento con el que itemspec se va a comparar. Si no proporciona un segundo elemento itemspec, se usa la versión más reciente de Azure DevOps Server del elemento.

<filetype>

Proporciona un valor para la opción /type. Se puede especificar binary o text y un número de página de código, o bien el nombre descriptivo de una página de código.

<format>

Se usa con la opción /format para especificar un formato de salida de uno de los siguientes tipos:

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

Estos formatos de salida se explican en la sección Comentarios.

<versionspec>

Valor proporcionado por el usuario para la opción /version. Para obtener más información sobre cómo TFVC analiza una especificación de versión para determinar qué elementos están dentro de su ámbito, vea Uso de comandos de control de versiones de Team Foundation.

<shelvesetowner>

Identifica al propietario del conjunto de cambios agregados pendientes de confirmación por nombre de usuario. Si no se proporciona un valor para este parámetro, se da por hecho que se trata del usuario actual.

<shelvesetname>

Especifica el nombre de un conjunto de cambios agregados pendientes de confirmación. Se puede crear más de un conjunto de cambios agregados pendientes de confirmación con el mismo nombre en el servidor que ejecuta TFVC, siempre que el propietario de cada uno de esos conjuntos sea un usuario distinto.

<shelveset_itemspec>

Especifica el nombre de una carpeta o archivo del conjunto de cambios agregados pendientes de confirmación para compararlo con la versión base del conjunto de cambios agregados pendientes de confirmación.

<username>

Proporciona un valor a la opción /login. Puede especificar un valor de nombre de usuario como DOMAIN\username o username.

Opciones

Opción

Descripción

/type

Invalida las codificaciones detectadas y usa la codificación especificada para presentar los archivos al motor de diferenciación.

/version

Especifica la versión del archivo o carpeta que se va a comparar. Si no se proporciona versionspec, TFVC usa de forma predeterminada la versión del área de trabajo.

En lugar de usar la marca /version, se pueden especificar versiones anexando un punto y coma y un especificador de versión al final de cada nombre de archivo.

/format

Indica un formato de salida especificado por el argumento format.

/ignorespace

No resalta las diferencias de espacios en blanco entre los archivos comparados.

/ignoreeol

Omite las diferencias entre los caracteres de nueva línea en dos archivos o versiones de archivo. /ignoreeol funciona de forma distinta a ignorespace, que trata ocho espacios como si fueran uno solo. Sin embargo, si se usa la opción /ignoreeol y Archivo A tiene dos caracteres de nueva línea entre áreas de texto que no han cambiado, mientras que Archivo B tiene solo uno, el resultado se muestra como una diferencia. Si ambos archivos tienen una sola línea nueva, pero Archivo A usa \r\n como una nueva línea, mientras que Archivo B usa \n, la opción /ignoreeol no registraría esto como una diferencia.

/ignorecase

No resalta las diferencias en el uso de mayúsculas y minúsculas entre los archivos comparados.

/recursive

Compara las diferencias entre la carpeta actual y todas sus subcarpetas.

/options

Especifica una cadena de opción de la herramienta para que difference la invoque. Para obtener más información, vea Asociación de un tipo de archivo con una herramienta de diferencia y Asociación de un tipo de archivo con una herramienta de combinación.

/shelveset

Especifica un conjunto de cambios agregados pendientes de confirmación para compararlo con la versión de Azure DevOps Server en la que ese conjunto se basa.

Esta opción no se puede combinar con un argumento itemspec. Para comparar elementos individuales de un conjunto de cambios agregados pendientes de confirmación, puede proporcionar un shelveset_itemspec.

/noprompt

Suprime los cuadros de diálogo que, de lo contrario, se abrirían durante la finalización de esta operación.

/configure

Invoca al cuadro de diálogo Configurar herramientas de usuario desde la interfaz de usuario de Visual Studio. Para obtener más información, vea Asociación de un tipo de archivo con una herramienta de diferencia.

/login

Especifica el nombre de usuario y la contraseña para autenticar al usuario con TFVC.

Observaciones

Nota:

Para ejecutar este comando, puede escribir tf diff o tf difference en la línea de comandos.

El comando difference se puede usar para comparar y, si es posible, mostrar diferencias entre los siguientes elementos:

  • Dos archivos diferentes o dos versiones del mismo archivo

  • Uno o varios elementos de una carpeta

  • Uno, algunos o todos los elementos de un conjunto de cambios agregados pendientes de confirmación en Azure DevOps Server

El comando difference se puede usar para comparar archivos con y sin control de versiones.

TFVC clasifica todos los archivos por tipo. Los archivos de texto se pueden combinar y comparar, en paralelo y línea a línea, siempre y cuando ambos archivos tengan la misma codificación. Si desea comparar dos archivos con codificaciones distintas, puede enmascarar o invalidar temporalmente la propiedad de codificación de un archivo usando la opción /type.

Los archivos binarios se pueden comparar, pero no se pueden combinar. Al pasar uno o varios archivos binarios al comando difference, TFVC señala si existen diferencias entre el archivo y el elemento con el que se va a comparar. Para obtener más información sobre cómo TFVC distingue entre archivos y cómo trata los de diferentes tipos, vea Administración de tipos de archivo.

Si se especifican dos nombres de archivo, se comparan los dos. En lugar de usar la marca /version, se pueden especificar versiones anexando un punto y coma y un especificador de versión al final de cada nombre de archivo.

Si solo se pasa un itemspec al comando de diferencia:

  • Si no se proporciona versionspec, la versión de área de trabajo actual del elemento se compara con la versión de área de trabajo base de forma predeterminada. Por ejemplo, tf difference header.h compara la versión actual de header.h con la versión en la que header.h se basa.

  • Si versionspec se incluye en itemspec, como tf difference header.h;LBeta1, TFVC compara esa versión con la versión de área de trabajo actual en disco.

  • Si se especifica un intervalo de versiones, como /version:C1~C4, se comparan las versiones del archivo en los dos puntos de conexión del intervalo.

Para obtener más información sobre cómo usar la utilidad de línea de comandos tf, vea Uso de comandos de Control de versiones de Team Foundation.

Tipos de formato de salida

El parámetro format, que se usa con la opción /format, especifica muchos formatos de salida diferentes. Hay disponibles los siguientes tipos de salida:

  • El tipo de formato Visual abre una aplicación de diferencia externa. Se abrirá diffmerge.exe de forma predeterminada.

  • El formato Brief imprime si los archivos que se comparan difieren.

  • El formato Context proporciona líneas de contexto de las diferencias en los archivos. Este formato deriva del formato de salida diff -c basado en UNIX.

  • El formato RCS es similar a /format:unix, salvo que no se proporcionan líneas de contexto. No hay ningún tratamiento especial si falta el final de un marcador de línea al final del archivo.

  • SS es el formato de salida de diferencia predeterminado de Visual SourceSafe. Para obtener más información, vea Diff (línea de comandos).

  • SS_SideBySide es el formato de salida en paralelo predeterminado de Visual SourceSafe.

  • SS_Unix es similar al formato de salida /format:unix, pero /format:ss_unix incluye líneas de contexto y /format:unix, no.

  • El formato Unified deriva del formato de salida diff -u basado en UNIX. /format:context repite líneas de contexto idénticas entre las cadenas de diferencia, mientras que /format:unified no.

    El formato Unified genera una nueva línea de cadena de diferencia unificada (@@ ... @@) únicamente cuando la distancia hasta la siguiente cadena de diferencia es mayor que el número de líneas de contexto.

  • El tipo de salida Unix deriva del formato de salida del comando diff basado en UNIX.

    El formato de salida Unix se crea de la siguiente manera:

    <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
    

Ejemplos

En el siguiente ejemplo se muestran las diferencias entre la versión local de 314.cs y la versión de área de trabajo de 314.cs, que es la versión del archivo que se éxtrajo del servidor de Azure DevOps.

c:\projects>tf difference 314.cs

En el siguiente ejemplo se muestran todos los archivos que han cambiado en la carpeta src, pero no los archivos que han cambiado en las subcarpetas de src.

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

En el siguiente ejemplo se muestran las diferencias entre el conjunto de cambios 3 y el conjunto de cambios 8 de 1254.cs.

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

En los siguientes ejemplos se muestran las diferencias entre la versión de 314.cs perteneciente a la etiqueta release y la versión perteneciente al conjunto de cambios 3200.

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

O bien

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

En el siguiente ejemplo se muestra la diferencia entre las versiones de e271.cs que un usuario llamado Pat ha preparado para confirmar en el conjunto de cambios agregados pendientes de confirmación PeerCodeReview8 y la versión base del conjunto de cambios agregados pendientes de confirmación en la que esos cambios se basan. La salida también muestra los tipos de cambios pendientes en e271.cs cuando el usuario ha preparado para confirmar.

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

En el siguiente ejemplo se muestran las diferencias entre todos los archivos del conjunto de cambios agregados pendientes de confirmación PeerCodeReview2 y la versión base del conjunto de cambios agregados pendientes de confirmación de esos archivos.

c:\projects> tf difference /shelveset:PeerCodeReview2