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 enitemspec
, comotf 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 salidadiff -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 salidadiff -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 comandodiff
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