2013-08-15 22 views
6

W svn book mówi się, że ma "scalić wszystkie zmiany źródłowego adresu URL" do kopii roboczej ".Jaka jest różnica między "svn merge --reintegrate" i svn merge bez reintegracji, jeśli chciałbym scalić gałąź na pniu?

Chciałbym scalić oddział z powrotem do bagażnika. Some places powiedzieć, że "absolutnie konieczne", aby zadzwonić reintegrate podczas łączenia, a następnie delete the branch natychmiast po, co myślę, że jest kłopot. Other places w ogóle nie wspominaj o reintegracji. Mam svn 1.6.11.

Więc nie jestem pewien, co teraz zrobić.

Odpowiedz

10

Łącze synchronizacyjne jest czymś zupełnie innym niż scalenie reintegracji . Ten pierwszy służy do scalania wszystkich zmian wprowadzonych w gałęzi nadrzędnej z gałęzią docelową (zazwyczaj gałęzią funkcji), które nie zostały jeszcze scalone. Ten ostatni służy do scalenia gałęzi (funkcji) z powrotem do gałęzi nadrzędnej. Zasadniczo oznacza to, że tworzony jest tymczasowy klon gałęzi (funkcji), połączenie synchronizacji jest tworzone z gałęzi nadrzędnej do gałęzi tymczasowej, a na końcu gałąź nadrzędna jest zastępowana przez gałąź tymczasową. Innymi słowy, gałąź tymczasowa zawiera wszystkie zmiany wprowadzone w gałęzi (funkcji) i gałęzi nadrzędnej.

Z jakiegoś powodu niektórzy deweloperzy nie rozumieją różnicy. W związku z tym programiści SVN usunęli opcję 1.w SVN 1.8. W tej wersji narzędzie wykrywa się automatycznie, jeśli należy użyć łącznika synchronizacyjnego z połączeniem lub scalania scalania.

Jeśli używasz starszej wersji, powinieneś użyć opcji --reintegrate dla reintegracji scalającej. Zwróć uwagę, że gałąź (cecha) nadal może być używana po reintegracji, jeśli będziesz mieć pewne rzeczy na uwadze. Książka SVN wyjaśnia to dobrze:

+0

Czy "synchronizacja scalania" jest zwykłym 'scalaniem', tzn.' Scalaniem' bez '--reintegrate'? –

+0

Tak, domyślnie jest _sync merge_ - bez '--reintegrate',' -c' i '-r'. – nosid

2

Upgrade do svn 1.8 i nie worrry już o tym, będzie on automatycznie dowiedzieć się, co zrobić.

z svn 1.8 release notes:

Podczas scalania, które łączą wszystkie kwalifikujące wersje z innego oddziału, Subversion 1.8 automatycznie zdecydować czy seryjnej jest reintegracji oddział. Dlatego reintegracja gałęzi nie wymaga już opcji --reintegracji dla poprawnego działania.

+0

Czy nadal powinienem usunąć gałąź po scaleniu (scalanie - ponowne zintegrowanie)? –

+1

Nie musisz usuwać gałęzi po reintegracji, jeśli wykonasz [ten mały krok] (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge. advanced.reintegratetwice). Nie wiem, dlaczego Subversion nie robi tego automatycznie dla ciebie. –