2012-11-30 20 views
5

Se ho due flussi (chiamati Stream1, Stream2) di sviluppo e voglio unire questi due flussi in un unico flusso.Come unire due o più flussi

Questo è attualmente come lo faccio:

  1. creare un nuovo flusso - Stream3. Streaming 3 conterrà una fusione di Stream1 & Stream2
  2. Creare una nuova area di lavoro repositroy (chiamato Workspace1) da Stream3
  3. obiettivo fissato flusso di Workspace1 per Stream1
  4. In 'Modifiche in sospeso' tutti i set di cambiamento che erano disponibili in Stream1 ma non in Stream2 dovrebbe ora apparire come set di modifiche che possono essere inviati a Stream3

Questa best practice per unire 2 o più flussi o esiste un metodo più elegante?

risposta

11

creare un nuovo flusso ??? Non c'è bisogno.

Quando si apre uno spazio di lavoro pronti contro termine, si dispone di una sezione chiamata "obiettivi Flow", che contiene dal Stream (caratterizzato come "Default").

Aggiungere ad esso la sorgente Stream (il flusso da cui si desidera unire), impostarlo come "corrente", e vedrai nella tua sezione "In attesa modifiche" una sezione "In entrata" con tutti i set di modifiche o linee di base provenienti da quella fonte Stream.

L'idea è quella di accettare questi set di modifiche, caricarli nell'area di lavoro locale e testarli (compilazione e test), quindi consegnare al flusso predefinito.

Il "Accept" fase è dove si verifica l'unione (automaticamente o manualmente se i conflitti).
Come menzionato in this thread:

L'algoritmo di unione in RTC è logicamente lo stesso che si trova in ClearCase, vale a dire, data una configurazione (corso d'acqua, area di lavoro) che seleziona una diversa versione di un dato file, trovare il antenato comune delle due versioni, quindi eseguire un'unione a 3 vie.
Modifica del "target flusso" di uno spazio di lavoro è solo il modo di RTC di lasciare che si specifica che ramo (stream) si desidera unire nel vostro spazio di lavoro (cleartool findmerge ti dà la stessa flessibilità).
Si noti che ClearCase e RTC utilizzano un algoritmo di antenato comune diverso.

L'ultimo passo suppone si torna alla sezione "target Flow", e impostare di nuovo come "corrente" del flusso di default.

preferisco questo flusso di lavoro per questo:

merge

Qui Brent avrebbe impostato come corrente destinazione flusso al fine di fornire il risultato della fusione. Questo è un flusso di lavoro alternativo, descritto anche in "How to keep your streams flowing smoothly in Rational Team Concert 3.0.1".

+0

e quindi creare un nuovo flusso di lavoro da repository? Il motivo per cui sto creando un nuovo stream è che non voglio i set di modifiche da Stream1 in Stream 2 (o Stream2 in Stream1).Quindi lo stream appena creato conterrà l'unione. È una cattiva pratica? –

+2

@ user470184 "cattiva pratica": sì. * Non * crei un nuovo Stream quando ti unisci da 'Stream A' a' Stream B'. 'Stream B' è * significato * per ricevere quei set di modifiche. Questo è ciò che è l'unione. Puoi creare un nuovo stream solo se l'unione è così complessa che vuoi collaborare con diversi sviluppatori per terminarlo, prima di unire il tuo stream3 a stream2. Evita quello se possibile. – VonC