Condividi tramite


Comando Differenza

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

Visual Studio 2019 | Visual Studio 2022

Il comando controllo della versione di Team Foundation (TFVC) difference confronta e, se possibile, visualizza le differenze tra due file, file in due cartelle o un insieme di scaffali e un file locale o server.

Prerequisiti

Per usare il difference comando, è necessario disporre dell'autorizzazione Lettura per tutti gli elementi specificati impostati su Consenti. Per altre informazioni, vedere Autorizzazioni tfvc predefinite.

Sintassi

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

Parametri

Argomenti

Argomento

Descrizione

<itemspec>

Obbligatorio. Specifica l'elemento da confrontare. Se non viene specificata alcuna versione o percorso, viene usata la versione corrente dell'area di lavoro. Accetta sia percorsi del server locale che di Azure DevOps.

Per altre informazioni sul modo in cui TFVC analizza itemspec per determinare quali elementi si trovano nell'ambito, vedere Usare i comandi di controllo della versione di Team Foundation.

Il difference comando non supporta caratteri jolly.

Questo parametro non può essere combinato con l'opzione /shelveset .

<itemspec2>

Facoltativo. Elemento a cui deve essere confrontato l'oggetto itemspec . Se non si specifica un secondo itemspec, viene usata la versione più recente del server Azure DevOps dell'elemento.

<filetype>

Fornisce un valore per l'opzione /type . È possibile specificare binary o text e un numero di tabella codici o il nome descrittivo per una tabella codici.

<format>

Usato con l'opzione /format per specificare un formato di output di uno dei tipi seguenti:

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

Questi formati di output sono illustrati nella sezione Osservazioni .

<versionspec>

Valore fornito dall'utente per l'opzione /version . Per altre informazioni su come TFVC analizza una specifica di versione per determinare quali elementi si trovano all'interno del relativo ambito, vedere Usare i comandi di controllo della versione di Team Foundation.

<shelvesetowner>

Identifica il proprietario del set di scaffali in base al nome utente. Se non viene specificato un valore per questo parametro, si presuppone che l'utente corrente.

<shelvesetname>

Specifica il nome di un set di scaffali. È possibile creare più scaffali con lo stesso nome nel server che esegue TFVC, purché un utente diverso sia proprietario di ogni scaffale.

<shelveset_itemspec>

Specifica il nome di una cartella o di un file nell'insieme di scaffali da confrontare con la versione degli scaffali di base.

<username>

Fornisce un valore all'opzione /login . È possibile specificare un valore di nome utente come DOMAIN\username o username.

Opzioni

Opzione

Descrizione

/type

Esegue l'override delle codifiche rilevate e usa la codifica specificata per presentare i file al motore di differenze.

/version

Specifica la versione del file o della cartella da confrontare. Per impostazione predefinita, tfvc usa la versione dell'area di lavoro se non si specifica un oggetto versionspec.

Anziché usare il /version flag , è possibile specificare le versioni aggiungendo un punto e virgola e un identificatore di versione alla fine di ogni nome file.

/format

Specifica un formato di output specificato dall'argomento format .

/ignorespace

Non evidenzia le differenze tra gli spazi vuoti tra i file confrontati.

/ignoreeol

Ignora le differenze tra i nuovi caratteri di riga in due file o versioni di file. /ignoreeol funziona in modo diverso da ignorespace, che tratta otto spazi in modo identico a uno. Tuttavia, se si usa l'opzione /ignoreeol e File A sono presenti due nuovi caratteri di riga tra aree di testo invariate e File B ne ha uno, il risultato viene visualizzato come differenza. Se entrambi i file hanno una sola nuova riga, ma file A usa \r\n come nuova riga e file B usa \n, l'opzione /ignoreeol ignorerebbe tale opzione come differenza.

/ignorecase

Non evidenzia le differenze nella combinazione di maiuscole e minuscole tra i file confrontati.

/recursive

Confronta le differenze tra la cartella corrente e tutte le relative sottocartelle.

/options

Specifica una stringa di opzione per lo strumento da richiamare da difference. Per altre informazioni, vedere Associare un tipo di file a uno strumento di differenza e Associare un tipo di file a uno strumento di unione.

/shelveset

Specifica un insieme di scaffali da confrontare con la versione del server Azure DevOps su cui si basa l'insieme di scaffali.

Questa opzione non può essere combinata con un itemspec argomento. Per confrontare singoli elementi degli scaffali, è possibile fornire un oggetto shelveset_itemspec.

/noprompt

Elimina tutte le finestre di dialogo che altrimenti verrebbero visualizzate durante il completamento di questa operazione.

/configure

Richiama la finestra di dialogo Configura strumenti utente dall'interfaccia utente di Visual Studio. Per altre informazioni, vedere Associare un tipo di file a uno strumento di differenza.

/login

Specifica il nome utente e la password per autenticare l'utente con TFVC.

Osservazioni:

Nota

È possibile digitare tf diff o tf difference nella riga di comando per eseguire questo comando.

È possibile usare il difference comando per confrontare e, se possibile, visualizzare le differenze tra:

  • Due file diversi o due versioni dello stesso file.

  • Uno o più elementi in una cartella.

  • Uno, alcuni o tutti gli elementi in un insieme di scaffali nel server Azure DevOps.

È possibile usare il difference comando per confrontare i file con versione e non con controllo delle versioni.

TFVC classifica tutti i file in base al tipo. I file di testo possono essere uniti e confrontati, affiancati e riga per riga, purché entrambi i file abbiano la stessa codifica. Se si desidera confrontare due file le cui codifiche non sono uguali, è possibile mascherare temporaneamente o eseguire l'override della proprietà di codifica per un file usando l'opzione /type .

I file binari possono essere confrontati ma non possono essere uniti. Quando si passa uno o più file binari al difference comando, TFVC indica se esistono differenze tra di esso e l'elemento a cui viene confrontato. Per altre informazioni su come TFVC distingue e tratta i file di tipi diversi, vedere Gestione dei tipi di file.

Se si specificano due nomi di file, vengono confrontati i due file. Anziché usare il flag /version , è possibile specificare le versioni aggiungendo un punto e virgola e un identificatore di versione alla fine di ogni nome file.

Se si passa solo uno itemspec al comando di differenza:

  • Se non si specifica un oggetto versionspec, la versione corrente dell'area di lavoro dell'elemento viene confrontata con la versione dell'area di lavoro di base, per impostazione predefinita. Ad esempio, tf difference header.h confronta la versione corrente di header.h con la versione su cui si basa header.h .

  • Se si include un oggetto versionspec in itemspec, ad esempio tf difference header.h;LBeta1, tfvc confronta tale versione con la versione corrente dell'area di lavoro su disco.

  • Se si specifica un intervallo di versioni, ad /version:C1~C4esempio , vengono confrontate le versioni del file nei due endpoint dell'intervallo.

Per altre informazioni su come usare l'utilità della tf riga di comando, vedere Usare i comandi di controllo della versione di Team Foundation.

Tipi di formato di output

Il format parametro , usato con l'opzione /format , specifica molti formati di output diversi. Sono disponibili i tipi di output seguenti:

  • Visual il tipo di formato apre un'applicazione di differenza esterna. Per impostazione predefinita, diffmerge.exe viene avviato.

  • Brief il formato stampa se i file confrontati differiscono.

  • Context il formato fornisce righe di contesto per le differenze nei file. Questo formato è derivato dal formato di output basato su diff -c UNIX.

  • RCS il formato è simile a /format:unix, ad eccezione delle righe di contesto non fornite. Non viene fornita alcuna mano speciale per un indicatore di fine riga mancante alla fine del file.

  • SSè il formato di output di differenza predefinito per Visual Source Cassaforte. Per altre informazioni, vedere Diff (riga di comando).

  • SS_SideBySideè il formato di output side-by-side predefinito per Visual Source Cassaforte.

  • SS_Unix è simile al /format:unix formato di output, ma /format:ss_unix include righe di contesto e /format:unix non.

  • Unified il formato è derivato dal formato di output basato su diff -u UNIX. /format:context ripete linee di contesto identiche tra le stringhe di differenza, ma /format:unified non.

    Unified format produce una nuova riga di stringa di differenza unificata (@@ ... @@) solo quando la distanza alla stringa di differenza successiva è maggiore del numero di righe di contesto.

  • Unix il tipo di output è derivato dal formato di output dei comandi basato su diff UNIX.

    Il Unix formato di output viene costruito nel modo seguente:

    <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
    

Esempi

L'esempio seguente mostra le differenze tra la versione locale di 314.cs e la versione dell'area di lavoro di 314.cs che rappresenta la versione del file estratto dal server Azure DevOps.

c:\projects>tf difference 314.cs

Nell'esempio seguente vengono visualizzati tutti i file modificati nella cartella src , ma non vengono visualizzati i file modificati nelle sottocartelle di src.

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

Nell'esempio seguente vengono visualizzate le differenze tra il set di modifiche 3 e il set di modifiche 8 di 1254.cs.

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

Negli esempi seguenti vengono visualizzate le differenze tra la versione di 314.cs che appartengono all'etichetta release e la versione che appartiene al set di modifiche 3200.

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

oppure

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

Nell'esempio seguente viene visualizzata la differenza tra le versioni di e271.cs che un utente denominato Pat shelved negli scaffali e la versione degli scaffali PeerCodeReview8 di base su cui si basano le modifiche. L'output mostra anche i tipi di modifiche in sospeso e271.cs rispetto al momento in cui l'utente è stato spostato.

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

Nell'esempio seguente vengono visualizzate le differenze tra tutti i file nel PeerCodeReview2 set di scaffali e la versione degli scaffali di base di tali file.

c:\projects> tf difference /shelveset:PeerCodeReview2