2009-08-12 8 views
87

Chciałbym scalić wszystkie zmiany, które nastąpiły między rev 10 & HEAD rev na http://url-of-branch-a i zastosować je do http://url-of-branch-b.SVN - połączyć jedną gałąź w drugą?

Coś ...

svn merge -r 10:HEAD http://url-of-branch-a 

Czy to możliwe? Jeśli tak, jaka jest składnia?

Używam klienta SVN z wiersza poleceń unix. Wersja klient SVN 1.4

EDIT: Tak, moje specyficzne rozwiązanie było ...

  1. katalog zmiana lokalizacji mojej kopii roboczej, która chce otrzymać zmiany (branch-b)
  2. svn merge -r 10: HEAD http://url-of-branch-a

ten scala zmiany z gałęzi-a '' na 'b' rozgałęzienia

+4

Głosowanie, jako że jest to powszechna potrzeba, ma dobrą odpowiedź od Billy3 i jest słabo udokumentowane w innych miejscach w Internecie. – fooMonster

+4

Musisz także wiedzieć, kiedy branża została pobrana.Możesz to zrobić (svn log --stop-on-copy.) W swoim oddziale, aby uzyskać numer wersji, z którego jesteś rozgałęziony. – jmc

+0

@jmc nie potrzebujesz tego więcej od 2008 roku, kiedy został wydany SVN 1.5, AFAIR – bahrep

Odpowiedz

49

Zamówienie URL A. Użyj SVN scalanie scalić URL B do swojej kopii roboczej A. Commit A.

lub odwrotnie oczywiście :)

+1

Dzięki. To sprawiło, że pomyślałem o problemie we właściwy sposób. wykonany dla łatwego rozwiązania – user62732

116

Jest to proces trzyetapowy (jak pokazuje BillyONeal).

  1. Ustanowienie kopii roboczej gałęzi B (svn checkout http://branch-b)
  2. seryjnej zmiany w gałęzi w kopii roboczej B (svn merge -r 10:HEAD http://branch-a .)
  3. Commit (po rozwiązywania konfliktów) Kopia robocza B gałęzi B (svn commit)

Sprawdź stronę man (plik pomocy) dla semantyki svn merge. Pokazuje, że svn merge zawsze zrzuca wyniki do kopii roboczej.

Sprawdź wszystkie szczegóły pod numerem the SVNBook.

+0

ma teraz sens. dzięki! – user62732

+35

+1 - ta odpowiedź jest lepsza niż moja. –

+0

Czy możesz również dać pojęcie, jak to zrobić za pomocą wtyczki SVN w Eclipse? –

0

Głównie mylić merge próbując zrobić w SVN repo, nie możemy bezpośrednio połączyć się svn repo, możemy połączyć do kopii lokalnej maszynie działa następująco:

  • Ta kopia robocza powinna być destination URL z scalać (tj. miejsce docelowe realizacji transakcji).

  • scalić kopię roboczą z source URL scalenia.

  • commit do miejsca przeznaczenia.

Best Practice: W Merge, Merge Out.

Powiązane problemy