Condividi tramite


Comando Merge

Aggiornamento: novembre 2007

Il comando merge consente di applicare le modifiche da una diramazione a un'altra.

Nota:

I risultati del comando non sono visibili in Controllo della versione di Team Foundation finché non si esegue un'operazione di archiviazione. Per ulteriori informazioni, vedere Procedura: archiviare le modifiche in sospeso.

Autorizzazioni necessarie

Per utilizzare il comando merge, è necessario che l'autorizzazione per Estrai sia impostata su Consenti per la cartella dell'area di lavoro contenente la destinazione per l'operazione di unione. È necessario inoltre che l'autorizzazione Lettura sia impostata su Consenti per la cartella dell'area di lavoro contenente l'origine. Per ulteriori informazioni, vedere Autorizzazioni per Team Foundation Server.

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] source destination

Parametri

Argomento

Descrizione

versionspec

Specifica un valore ad esempio C2 per l'opzione /version. Per ulteriori informazioni sul tipo di analisi eseguito da Team Foundation sulla specifica di una versione per determinare gli elementi all'interno dell'ambito, vedere Sintassi della riga di comando (Team System).

source

Indica il file o la cartella che funge da origine dell'operazione di unione.

Destination

Indica il file o la cartella che funge da destinazione dell'operazione di unione.

Opzione

Descrizione

/recursive

Associa l'elemento source specificato nella directory corrente e nelle eventuali sottocartelle.

/force

Ignora la cronologia delle operazioni di unione e unisce le modifiche specificate dall'origine alla destinazione, anche se alcune o tutte le modifiche sono già state unite in precedenza.

/candidate

Visualizza un elenco di tutti gli insiemi di modifiche dell'origine non ancora uniti nella destinazione. L'elenco deve includere l'ID dell'insieme di modifiche non unito e altre informazioni di base su tale insieme.

/discard

Non esegue l'operazione di unione, ma aggiorna la cronologia delle operazioni di unione in modo da tenere traccia delle operazioni eseguite. Ignora l’utilizzo di un insieme di modifiche per una particolare unione.

/version

Per un'operazione di unione selettiva, questa opzione consente di specificare l'intervallo da unire nella destinazione. Per un'operazione di unione globale, questo parametro indica la versione a partire dalla quale è necessario unire tutte le modifiche non unite.

Per un'operazione di unione selettiva, l'intervallo di versioni denota i punti iniziale e finale dell'insieme di modifiche da unire. Ad esempio, se si tenta di unire l'intervallo di versioni 4~6, verranno uniti gli insiemi di modifiche 4, 5 e 6.

/lock

Specifica un tipo di blocco o rimuove un blocco da un elemento. Per ulteriori informazioni, vedere Informazioni sui tipi di blocco.

Opzioni di blocco:

  • None

    Non è posizionato alcun blocco su un elemento e rimuove qualsiasi blocco esistente da un elemento.

  • Checkin

    Altri utenti possono estrarre gli elementi specificati, ma non archiviare revisioni in file bloccati fino a quando il blocco non viene rilasciato eseguendo un'archiviazione. Se uno qualsiasi degli elementi specificati è stato bloccato da un qualsiasi altro utente, l'operazione di blocco non viene eseguita.

  • Checkout

    Impedisce agli utenti di archiviare o estrarre uno qualsiasi degli elementi specificati fino al rilascio esplicito del blocco. Se altri utenti hanno bloccato uno qualsiasi degli elementi specificati o se sono disponibili modifiche in sospeso per un qualsiasi elemento, l'operazione di blocco non viene eseguita.

/preview

Visualizza un'anteprima dell'operazione di unione.

/baseless

Esegue un'operazione di unione senza disporre di una versione di base. Consente pertanto all'utente di unire file e cartelle che non hanno una relazione di unione. Dopo un'unione senza base, viene stabilita una relazione di unione e le future operazioni di unione non saranno senza base.

/nosummary

Omette la visualizzazione del riepilogo di errori e avvisi quando tale operazione richiede più di 10 righe di output.

/noimplicitbaseless

Specifica che Team Foundation non esegue un'unione senza base implicita tra due elementi che hanno lo stesso nome relativo in due strutture ad albero del controllo della versione non correlate.

/noprompt

Non vengono visualizzati prompt che richiedono l'input da parte dell'utente.

Note

Utilizzare il comando merge della riga di comando tf per applicare le modifiche apportate a una diramazione di origine a una diramazione di destinazione esistente. È possibile unire nella diramazione di destinazione una singola revisione o un insieme di modifiche completo. È possibile unire le modifiche dalla diramazione di origine a quella di destinazione oppure dalla diramazione di destinazione a quella di origine.

Il comando merge consente inoltre di ricercare le modifiche in una diramazione di origine di cui non è stata eseguita la migrazione nella diramazione di destinazione. Consente inoltre di indicare che alcune modifiche non verranno mai unite dall'origine alla destinazione e non verranno più visualizzate come candidati per un'operazione di unione.

Per ulteriori informazioni su come accedere all'utilità della riga di comando tf, vedere Comandi dell'utilità della riga di comando Tf.

Unione senza base

Utilizzare l'unione senza base per unire gli elementi che non sono diramati direttamente l'uno dall'altro. Per eseguire un'unione senza base, è necessario utilizzare il comando tfmerge. Quando si esegue un'unione senza base, Team Foundation non dispone di informazioni sulla relazione dei file nelle diramazioni. In un'unione senza base, è necessario eseguire la risoluzione dei conflitti manualmente. Dopo avere eseguito l'unione senza base e risolto i conflitti, Team Foundation registra la cronologia di unione e stabilisce una relazione tra le cartelle e i file.

Quando si esegue tfmerge, in Team Foundation viene eseguita un'unione senza base implicita tra due elementi che hanno lo stesso nome relativo in due strutture ad albero del controllo della versione precedentemente correlate. Ad esempio, è necessario unire il correlato si dirama $SRC\ e $TGT. Entrambe le diramazioni contengono un file non correlato denominato a.txt. Quando si esegue tf merge, in Team Foundation viene stabilita una relazione tra i due file a.txt se i due file sono uguali, se è disattivata la crittografia FIPS e se il file di origine non è correlato a un file nella destinazione.

Se si esegue tf merge con l'opzione /noimplicitbaseless impostata, quando Team Foundation tenta di unire i due rami, i due file a.txt creeranno un conflitto dello spazio dei nomi quando si tenta di archiviare le modifiche. Per risolvere il conflitto, è necessario rinominare uno dei file.

Esempi

L'esempio riportato di seguito consente di unire le modifiche in MyFile_beta1 non ancora unite in MyFile_RTM.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

L'esempio riportato di seguito consente di unire solo le modifiche dell'insieme di modifiche 137 in branch2.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

Nell'esempio seguente tutti gli insiemi di modifiche vengono uniti dal primo insieme di modifiche fino all'insieme di modifiche 137 compreso da branch1.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

Nell'esempio seguente vengono unite tutte le modifiche dall'insieme di modifiche 100 fino all'insieme di modifiche 137 compreso.

c:\projects>tf merge /version:C100~137 branch1 branch2 /recursive

L'esempio riportato di seguito consente di stampare un elenco degli insiemi di modifiche di branch1 di cui non è stata eseguita l'unione in branch2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

L'esempio riportato di seguito consente di stampare un elenco degli insiemi di modifiche di branch2 di cui non è stata eseguita nuovamente l'unione in branch1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

L'esempio riportato di seguito consente di cancellare l'insieme di modifiche 137 dai candidati per l'unione in branch2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive

Vedere anche

Attività

Procedura dettagliata: funzionalità avanzate di controllo della versione

Procedura: risolvere conflitti tra due file

Concetti

Informazioni sulle diramazioni

Riferimenti

Sintassi della riga di comando (Team System)

Comando Branch

Comando Merges

Altre risorse

Comandi dell'utilità della riga di comando Tf