Czytałem o rozgałęzianiu / scalaniu z Subversion 1.5 przy użyciu doskonałej i darmowej książki Kontrola wersji z Subversion . Myślę, że rozumiem, jak używać klienta wiersza poleceń Subversion do wykonywania czynności, których potrzebuję najczęściej, którymi są:
Zaktualizuj gałąź ze zmianami z pnia
Z katalogu roboczego oddziału uruchom:
scalanie svn http://svn.myurl.com/proj/trunk
Połącz gałąź z pniem
Z katalogu roboczego linii głównej uruchom:
scalanie svn - ponowna integracja http://svn.myurl.com/proj/branches/mybranch
Jednak używamy TortoiseSVN 1.5 jako naszego interfejsu do Subversion. Chciałbym wiedzieć, jak najlepiej wykonać te operacje za pomocą TortoiseSVN. Nowe okno dialogowe zawiera trzy różne opcje w menu głównym.
- Scal szereg wersji
- Ponownie zintegruj gałąź
- Połącz dwa różne drzewa
Z tego, co mogę zebrać, TortoiseSVN zawsze wykonuje svn z następującą składnią.
scalanie svn [--dry-run] --force From_URL @ revN To_URL @ revM PATH
Dodatkowo, ponowna integracja gałęzi często kończy się niepowodzeniem z komunikatem informującym, że niektóre cele nie zostały scalone, więc nie można jej kontynuować, dlatego musiałem użyć opcji # 3.
Moje pytania to:
- Jak użyć TortoiseSVN 1.5, aby scalić zmiany z pnia do gałęzi?
- Jak użyć TortoiseSVN 1.5 do scalenia gałęzi z pniem, z metodą reintegracji i bez niej?
- Których z powyższych opcji powinienem użyć w przypadku każdej z nich i dlaczego?
EDYTOWAĆ
Dzięki testom „na sucho” odkryłem, że operacja Subversion w wierszu poleceń
scalanie svn http://svn.myurl.com/proj/trunk
jest analogiczne do opcji nr 1 (Scal zakres wersji) w TortoiseSVN, o ile pozostawię zakres wersji pusty.
źródło
Odpowiedzi:
Zachowanie zależy od wersji posiadanej przez repozytorium. Subversion 1.5 pozwala na 4 typy scalania:
Subversion przed 1.5 dopuszczał tylko pierwsze 2 formaty.
Technicznie rzecz biorąc, możesz wykonać wszystkie scalenia dwiema pierwszymi metodami, ale dwie ostatnie umożliwiają śledzenie scalania przez Subversion 1.5.
Opcje TortoiseSVN łączą zakres lub mapy wersji do metody 3, gdy repozytorium ma wersję 1.5+, lub do metody pierwszej, gdy repozytorium jest starsze.
Podczas scalania funkcji do gałęzi wydania / obsługi należy użyć polecenia „Scal zakres wersji”.
Tylko wtedy, gdy chcesz scalić wszystkie funkcje oddziału z powrotem do gałęzi nadrzędnej (zwykle głównej), powinieneś rozważyć użycie opcji „Ponowna integracja gałęzi”.
Ostatnie polecenie - Połącz dwa różne drzewa - jest przydatne tylko wtedy, gdy chcesz wyjść poza normalne zachowanie rozgałęziania. (Np. Porównanie różnych wersji, a następnie scalenie różnicy z inną gałęzią)
źródło
Nie mogłem poprawnie zastosować się do innych odpowiedzi, oto więcej poradnika dla manekinów ...
Możesz to zrobić w obie strony, aby przejść
trunk -> branch
lubbranch -> trunk
. Zawsze najpierwtrunk -> branch
naprawiam tam konflikty, a potem łączębranch -> trunk
.Połącz linię główną w gałąź / tag
źródło
trunk
Ibranch
, wtedy upewnienie się, że jak najszybciej scalisz zmiany odtrunk
do,branch
pozwoli uniknąć konfliktów tak bardzo, jak to możliwe. Oznacza to, że po połączeniubranch
siętrunk
nie powinno być żadnych konfliktów.Należy użyć opcji „scal zakres wersji”.
Aby scalić zmiany z linii głównej do gałęzi, w kopii roboczej gałęzi wybierz opcję „scal zakres wersji” i wprowadź adres URL linii głównej oraz wersje początkową i końcową do scalenia.
To samo w odwrotny sposób, aby scalić gałąź w pniu.
Informacje o fladze --reintegrate, sprawdź podręcznik tutaj: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate
źródło
Spójrz na svnmerge.py . To wiersz poleceń, nie może być wywołany przez TortoiseSVN, ale jest potężniejszy. Z FAQ :
źródło
Kliknij prawym przyciskiem myszy folder i wybierz TortoiseSVN -> Scal wszystko
źródło