2009-11-05 15 views
5

W regularnych odstępach czasu otrzymuję nową wersję oprogramowania dostawcy, dostarczanego jako kod źródłowy w skompresowanym pakiecie, i nie mam dostępu do źródła dostawcy repozytorium kodu. Wprowadzamy zmiany w kodzie źródłowym dostawcy między ich wydaniami. Nasze zmiany nie zostają włączone do ich wydań, ale muszę scalić zmiany z ich wydań do mojej głównej linii.Subversion: Łączenie kodu źródłowego dostawcy z linią główną w regularnych odstępach czasu

Moje repozytorium układ wygląda następująco:

  • /oddziały/Vendor X release 1.0
  • /oddziały/Vendor X release 1.1
  • /trunk/

Workflow Śledziłem był:

  1. Dodałem Wersja X dostawcy 1.0 jako gałąź, a następnie skopiowana do bagażnika.
  2. Wprowadziliśmy kilka zmian w kodzie źródłowym na pniu, a następnie otrzymaliśmy Producent X wydanie 1.1.
  3. Dodałem Dostawcy X wydanie 1.1 do oddziału. Teraz chciałbym scalić Dostawcy X wydanie 1.1 do bagażnika.

Problem polega na tym, że niezależnie od tego, jak próbuję tego, kończę z połączeniem powodującym brak zmian w bagażniku lub każdym plikiem zgłaszanym jako konflikt drzewa.

Myślę, że chciałbym jakoś wykonać następujące czynności: powiadom Subversion, aby scalił każdy plik bez uwzględnienia numeru wersji pliku. Myślę, że Subversion zgłasza konflikt drzewa dla każdego pliku, ponieważ pliki nie pochodzą z tego samego punktu w historii wersji. Jednak w wielu przypadkach pliki te są identyczne.

Z góry dziękujemy za pomoc.

+0

Czy możesz opublikować wykonywane polecenia i wynikające z nich komunikaty o błędach? –

Odpowiedz

5

W warunkach innych niż subversion, chcesz zintegrować zmiany między wersją 1.0 dostawcy a wersją X dostawcy 1.1 w twoim porcie.

Utworzę tylko jedną gałąź X dostawcy i używam znaczników do identyfikowania numerów wersji. Za każdym razem, gdy otrzymasz nową wersję X sprzedawcy, sprawdź oddział, skopiuj pliki nowej wersji do katalogu roboczego, zastosuj odpowiednio svn add i svn delete i zatwierdz. Subversion ma teraz poprawne informacje o różnicach dla wszystkiego, co zrobił sprzedawca X podczas dwóch wydań. Następnie możesz scalić zmiany między ostatnimi wydaniami dwóch dostawców (czyli ostatnimi wersjami tweo w gałęzi X dostawcy) z pniem.

+0

To było to, co musiałem zrobić. Dziękuję za wskazówki. Wymienię dokładne kroki, które podążyłem poniżej. – RjOllos

2

IMHO pozwala uniknąć scalania. Oto ona:

  1. 1.0 Tworzenie Rozgałęzienie
  2. Kopiuj 1,0 do 1,1
  3. Wykonaj wszystkie wymagane zmiany na 1,1
  4. Copy 1.1 do tułowia.

Jeśli nadal nalegać, aby scalić następnie:

  1. Tworzenie 1.0
  2. Copy 1.0 do tułowia
  3. Kopiowanie 1,0 do 1,1
  4. wprowadzeniu wymaganych zmian do 1,1
  5. Merge zmiany zrobione do 1,1 do bagażnika. Zmiany są od początku 1.1 do końca.

This również może pomocne

+0

+1 za link do dokumentacji –

1

Rozwiązanie I następnie był:

  1. Utworzony zwalniający/LINE na oprogramowanie dostawcy.
  2. Dodano Wersja 1.0 do wydania/wiersza.
  3. Rozgałęzienie/aby utworzyć trunk/a następnie zastąpiony trunk/z kopią roboczą zawierającą wszystkie zmiany wprowadzone po wydanie 1.0.
  4. Sprawdzono kopię roboczą wersji 1.0 i dodano w wersji 1.1. Zobowiązany.
  5. Uwolnienie scalone/do bagażnika /. Brak konfliktu drzewa lub konflikt łączący.