Comando Merge

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

Nota

I risultati di questo comando non risulteranno disponibili nel server Controllo della versione di Team Foundation finché non verrà eseguita un'operazione di archiviazione. Per ulteriori informazioni, vedere Archiviare modifiche in sospeso.

Autorizzazioni necessarie

Per utilizzare il comando merge, è necessario disporre dell'autorizzazione Estrai impostata su Consenti per la cartella dell'area di lavoro contenente la destinazione e disporre dell'autorizzazione Lettura 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] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Parametri

Argomento

Oggetto di descrizione

versionspec

Fornisce 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 (controllo della versione).

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.

username

Fornisce un valore all'opzione /login. È possibile specificare un valore username come DOMINIO\NomeUtente o NomeUtente.

Opzione

Oggetto di 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 eseguire un'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 eseguire un'unione selettiva, l'intervallo di versioni determina i punti iniziale e finale del set di modifiche da unire. Ad esempio, se si tenta di unire l'intervallo di versioni 4~6, verranno uniti gli insiemi di modifiche per le versioni 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:

  • Nessuna correzione

    Non viene 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.

NotaNota
Le unioni baseless non possono eliminare file nella destinazione.È possibile trasferire manualmente tali modifiche.

/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.

/nosummary

Consente di omettere un riepilogo dei conflitti, degli errori e degli avvisi.

/noprompt

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

/conservative

Comporta più conflitti quando vengono uniti due rami.

/format

Consente di specificare i formati del riepilogo dei conflitti di unione:

  • Brief: valore predefinito, consente di riepilogare solo il numero complessivo di conflitti, avvisi ed errori.

  • Detailed: consente di riepilogare il numero complessivo di conflitti, avvisi ed errori, nonché di visualizzare i dettagli su ogni conflitto.

Nota   Questa opzione si applica solo quando l'output contiene un riepilogo di conflitti. Impossibile visualizzare il riepilogo se viene utilizzata l'opzione /nosummary o se l'unione ha causato meno di 10 conflitti, avvisi ed errori.

/login

Consente di specificare il nome utente e la password necessari per autenticare l'utente con Visual Studio Team Foundation Server.

Note

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

Il comando merge consente inoltre di ricercare le modifiche in una creazione di un ramo di origine di cui non è stata eseguita la migrazione nella creazione di un ramo 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 rami diretti l'uno dell'altro. Per eseguire un'unione senza base, è necessario utilizzare il comando tf merge. Quando si esegue un'unione senza base, Team Foundation non dispone di informazioni sulla relazione dei file nelle creazioni di un ramo. 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 tf merge, 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 le creazioni di un ramo correlate $SRC\ e $TGT. Entrambe le creazioni di un ramo 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 è disabilitata 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 l'insieme di modifiche 137 in branch2.

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

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

c:\projects>tf merge /version:C137 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à

Risolvere conflitti tra due file

Riferimenti

Sintassi della riga di comando (controllo della versione)

Comando Branch

Comando Merges

Altre risorse

Comandi dell'utilità della riga di comando Tf

Creazione di un ramo e unione