TFS: aggiornamento del ramo con modifiche da main


100

Quindi, abbiamo la nostra linea di sviluppo principale, creo un ramo e lo sviluppatore b crea un ramo. Entrambi facciamo un po 'di lavoro. lo sviluppatore b termina il suo lavoro, si fonde di nuovo nella linea di sviluppo principale. So che le sue modifiche avranno effetto su di me, e piuttosto che affrontare i conflitti in seguito, vorrei aggiornare il mio ramo, con le modifiche che sono ora nella linea di sviluppo principale, in modo da poterle gestire nel mio ramo, prima dell'unione torna in main.

Come lo faccio?

Risposte:


175

Da Visual Studio, apri Esplora controllo del codice sorgente:

  • Visualizza | Team Explorer
  • Seleziona il tuo progetto team da Team Explorer, espanderlo e fare doppio clic su Controllo del codice sorgente
  • Nel riquadro a sinistra di Esplora controllo del codice sorgente, seleziona il tuo progetto team .
  • Nel riquadro di destra, trova il ramo della linea principale, fai clic con il pulsante destro del mouse e seleziona Unisci ...
  • Nel menu a discesa Ramo di destinazione , seleziona il tuo ramo di sviluppo.
  • Se vuoi un sottoinsieme di tutte le modifiche nella linea principale:
    • Scegliere il pulsante di opzione Gruppi di modifiche selezionati , fare clic su Avanti .
    • Seleziona i changeset che rappresentano l'unione dal ramo dell'altro sviluppatore al main, fai clic su Next .
  • Altrimenti, mantieni Tutte le modifiche fino a una versione specifica selezionata, fai clic su Avanti
    • Il passaggio successivo prevede di scegliere un tipo di versione. L'impostazione predefinita, Ultima versione è ovviamente semplice e autoesplicativa: porteresti tutte le modifiche poiché il tuo ramo è stato creato dalla linea principale fino al tuo ramo. Le altre scelte sono semplici, ma una spiegazione tutorial di ciascuna opzione disponibile qui richiederebbe una discreta quantità di spazio.
    • Esegui i passaggi rimanenti della procedura guidata.
  • Fare clic su Fine .
  • In caso di errori o conflitti di unione, ti verrà chiesto di risolverli, in modo simile a quello che vedresti controllando le modifiche nel controllo del codice sorgente quando sono state apportate altre modifiche dall'ultimo checkout.
  • Al termine dell'unione, tutte le modifiche si trovano nella copia locale del ramo, ma non vengono ancora salvate nel controllo del codice sorgente. Dopo aver completato tutte le build e i test sul ramo, puoi eseguire il check-in dell'unione. Da Visual Studio:
    • Visualizza | Altre finestre | In attesa di modifiche
    • Assicurati che tutti i file relativi a questa unione siano selezionati, aggiungi commenti che descrivono l'unione e fai clic su Archivia .

Raccomando di mantenere le unioni (e qualsiasi risoluzione dei conflitti di unione necessaria, interruzioni di build, interruzioni di test) come proprio changeset. Cioè, non mischiare altre funzionalità con unioni. I gruppi di modifiche granulari semplificano molto la revisione della cronologia del controllo del codice sorgente e l'identificazione di una singola modifica di interesse. Mantenere il lavoro di unione nel proprio changeset aiuta a lavorare verso quell'obiettivo.

C'è anche la riga di comando per l'unione, eseguita tf merge /?da un prompt dei comandi di Visual Studio.

Buona fortuna e buon divertimento!


1
Ha funzionato perfettamente. Grazie. Volevo solo assicurarmi di aver proceduto nel modo corretto. Questo è perfetto.
CaffGeek

E se quando mi è stato chiesto di risolvere i conflitti, ho commesso un errore su come risolvere il conflitto e vorrei correggerlo solo per quel file. È possibile ripristinare quel file e unire nuovamente quel file in modo da avere una seconda possibilità di fusione del conflitto?
Didier A.

E se volessi unire un'etichetta specifica dalla fonte principale al mio ramo di destinazione? L'etichetta desiderata viene creata dopo l'operazione di filiale originale (solo per chiarezza)
Simon Bosley,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.