2012-11-30 24 views
5

Jeśli mam dwa strumienie (o nazwie Stream1, Stream2) rozwoju i chcę połączyć te dwa strumienie w jeden strumień.Jak połączyć dwa lub więcej strumieni

Jest to obecnie, jak to zrobić:

  1. Utwórz nowy Stream - Stream3. Strumień 3 będzie zawierać scalania Stream1 & Stream2
  2. Utwórz nową repositroy roboczy (zwany workspace1) od Stream3
  3. Zestaw docelowy przepływ workspace1 do Stream1
  4. W sekcji „oczekujące zmiany” wszystkich zestawów zmian, które były dostępne w Strumieniu1, ale nie w Strumieniu2, powinno być teraz wyświetlane jako zestawy zmian, które mogą być dostarczane do Stream3

Czy to najlepsza praktyka w przypadku łączenia 2 lub więcej strumieni lub czy istnieje bardziej elegancka metoda?

Odpowiedz

11

Utwórz nowy strumień ??? Nie ma potrzeby.

Po otwarciu obszaru roboczego repo masz sekcję o nazwie "Cele przepływu", która zawiera strumień (określony jako "Domyślny").

Dodaj do niego źródło strumienia (strumień, z którego chcesz scalić), ustaw go jako "bieżące", a zobaczysz w widoku "Oczekujące zmiany" sekcję "Przychodzące" ze wszystkimi zestawami zmian lub linie bazowe pochodzące z tego źródła Stream.

Chodzi o to, aby przyjąć te określone zmiany, załadować je w lokalnej przestrzeni roboczej i je przetestować (kompilacja i testy), a następnie dostarczyć je z powrotem do domyślnego strumienia.

Faza "Akceptuj" to miejsce, w którym następuje scalenie (automatycznie lub ręcznie w przypadku konfliktów).
Jak wspomniano w this thread:

Algorytm scalania w RTC jest logicznie tym samym, znajduje się w ClearCase, czyli dana konfiguracja (strumień, robocza), które wybiera inną wersję danego pliku, odnaleźć wspólny przodek obu wersji, a następnie wykonaj scalenie w 3 kierunkach.
Zmiana "miejsca docelowego przepływu" obszaru roboczego jest po prostu metodą RTC umożliwiającą określenie gałęzi (strumienia), która ma zostać scalona z obszarem roboczym (cleartool findmerge zapewnia taką samą elastyczność).
Należy zauważyć, że ClearCase i RTC używają innego wspólnego algorytmu przodka.

Ostatni krok zakłada powrót do sekcji "Docelowy przepływ" i powrót do "aktualnego" strumienia domyślnego.

Wolę ten obieg do tego:

merge

Tutaj Brent będzie ustawiony jako bieżący z docelowy strumienia w celu dostarczenia wyniku połączenia. To alternatywny przepływ pracy, opisany również w "How to keep your streams flowing smoothly in Rational Team Concert 3.0.1".

+0

, a następnie utworzyć nowy strumień z obszaru roboczego repozytorium? Powodem, dla którego tworzę nowy strumień, jest to, że nie chcę zestawów zmian ze strumienia 1 w strumieniu 2 (lub strumienia 2 w strumieniu 1).Tak więc nowo utworzony strumień będzie zawierał scalenie. Czy to jest zła praktyka? –

+2

@ user470184 "Zła praktyka": tak. Nie * tworzysz * nowego strumienia, gdy łączysz się z 'Stream A' do' Stream B'. "Strumień B" ma * na celu * przyjęcie tych zmian. O to właśnie chodzi w scalaniu. Możesz tylko utworzyć nowy strumień, jeśli scalanie jest tak złożone, że chcesz współpracować z kilkoma deweloperami, aby je zakończyć, przed połączeniem 'Stream3' z' Stream2'. Unikaj tego, jeśli to możliwe. – VonC

Powiązane problemy