Jaki jest najprostszy sposób rozgałęziania i scalania za pomocą TortoiseSVN?

Odpowiedzi:

185

Zakładając, że twój katalog roboczy działa z linii głównej:

Kliknij prawym przyciskiem myszy „główny folder roboczy” (ten termin zawsze odnosi się do Eksploratora Windows) i zrób, svn updateaby zaktualizować folder roboczy do najnowszej linii głównej.

Upewnij się, że to, co masz, jest stabilne.

Kliknij prawym przyciskiem myszy główny folder roboczy i zrób, svn commitaby upewnić się, że wszelkie lokalne zmiany są zatwierdzone w magistrali.

Kliknij prawym przyciskiem myszy główny folder roboczy i zrób svn repo-browser.

Jeśli nie masz jeszcze folderu oddziałów w repozytorium: kliknij prawym przyciskiem myszy folder tuż nad folderem głównym i zrób „utwórz folder” i utwórz folder oddziałów (na przykład, jeśli Twój główny folder jest http://myserver/svn/MyRepository/MyProj/Trunk, utwórz http://myserver/svn/MyRepository/MyProj/Branches).

Kliknij prawym przyciskiem myszy folder główny, zrób Copy To:i wprowadź nową nazwę folderu dla swojej gałęzi. Na przykład: http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch. (Nie martw się, że zajmie to dużo miejsca ... nazywa się to „tanią kopią” ... w rzeczywistości nie kopiuje zawartości plików, chyba że ulegną zmianie).

Zamknij przeglądarkę repo.

Kliknij prawym przyciskiem myszy katalog główny folderu roboczego i wykonaj: svn switchi wybierz nazwę folderu nowej gałęzi (na przykład http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Zostaw wszystko inne jako domyślne.

Teraz pracuj nad swoim oddziałem. Kiedy dojdziesz do kamieni milowych, kliknij prawym przyciskiem myszy główny folder roboczy i zrób, svn commitaby zatwierdzić swoją gałąź. (Tego nie widać w bagażniku).

Jeśli inni pracują nad tą samą gałęzią, okresowo rób to svn updatez głównego folderu roboczego. To zaktualizuje z oddziału. (NIE otrzyma żadnych aktualizacji z pnia).

Niezależnie od tego, czy inni pracują nad tą samą gałęzią, czy nie, należy okresowo scalać zmiany z linii głównej, aby mieć pewność, że późniejsza integracja oddziału nie będzie zbyt trudna. Aby wykonać okresowe scalanie: kliknij prawym przyciskiem myszy katalog główny folderu roboczego i wykonaj svn merge. Wybierz „Scal zakres wersji”. W sekcji „URL do scalenia z” wybierz linię główną (na przykład http://myserver/svn/MyRepository/MyProj/Trunk). Pozostaw zakres wersji pusty i wszystko inne zostaw w spokoju. Kliknij Następny. Zostaw wszystko w spokoju i kliknij Scal . Upewnij się, że wszystko nadal działa ... napraw to, jeśli nie. Gdy będziesz zadowolony, wykonaj regularnie svn updatez głównego folderu roboczego, aby zaktualizować z gałęzi (jest to konieczne, nawet jeśli jesteś jedyną osobą pracującą w gałęzi, aby spełnić wymagania SVN). Następnie zróbsvn commitzatwierdzić scalone zmiany linii głównej w gałęzi. Możesz powtarzać ten krok okresowo tyle razy, ile chcesz.

Gdy Twoja gałąź będzie gotowa do integracji, wykonaj powyższy krok ostatni raz i przeprowadź końcowe testy. Wykonaj ostateczne zatwierdzenie gałęzi.

Kliknij prawym przyciskiem myszy główny folder roboczy i zrób inny svn switch, tym razem przełączając się na łącze trunk (na przykład http://myserver/svn/MyRepository/MyProj/Trunk). Spowoduje to w zasadzie „cofnięcie” całej pracy wykonanej w gałęzi, ale nie martw się ... odzyskasz swoją pracę. (Będzie również zgłaszać wiele aktualizacji plików, których nie zmieniłeś w swojej gałęzi, ale to tylko zmiany „właściwości SVN” ... nie martw się o nie).

Kliknij prawym przyciskiem myszy folder roboczy i zrób svn merge. Tym razem wybierz opcję „Reintegrate a Branch”. Jako adres URL wpisz swoją gałąź (na przykład http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Resztę zostaw w spokoju i kliknij Dalej. Zostaw wszystko w spokoju i kliknij Scal . Masz teraz całą pracę wykonaną w oddziale, a także aktualną pracę z pnia.

Zrób ostatni test. Wszystko powinno działać, ponieważ powinien to być ten sam zestaw plików, który miałeś podczas ostatniego testu w gałęzi. Kliknij prawym przyciskiem myszy główny folder roboczy i wykonaj plik svn commit. Zatwierdź wszystko, nawet pliki, nad którymi nie pracowałeś w swojej gałęzi (mają tylko zmiany "właściwości SVN", ale ich zatwierdzenie pomaga SVN śledzić wszystkie wersje).

Pień ma teraz całą twoją pracę w gałęzi, a także całą pracę, która została wykonana w pniu podczas pracy z twoją gałęzią i wszystko działa. Ponadto SVN ma pełną historię wszystkich plików, nawet wersji, które zostały wpisane podczas pracy nad oddziałem.

Opcjonalnie: przejdź do przeglądarki repo, kliknij prawym przyciskiem myszy folder oddziału (na przykład http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch) i wykonaj polecenie „usuń”. Nie będzie to miało wpływu na pień i nie potrzebujesz już gałęzi. (Nawet jeśli jesteś naprawdę paranoikiem, nie martw się, ponieważ możesz nawet odzyskać usuniętą gałąź z przeglądarki repo w dowolnym momencie, jeśli naprawdę potrzebujesz).

Zachęcamy do komentowania!

JoelFan
źródło
37
Powiedziałem „najprostszy”, a nie „prosty” :)
JoelFan
1
Dzięki! To ty byłeś pierwszą osobą, która mi podziękowała (chociaż były głosy za i ulubione :)
JoelFan
Czy to prawda, że ​​po ponownym zintegrowaniu gałęzi z pniem nie można już wykonywać żadnych prac na tej gałęzi? Ponieważ nie będzie śledzić zmian i nie będziesz już w stanie połączyć się z / z tej gałęzi?
Michael Waterfall
1
O ile rozumiem, scalenie nie zadziała więcej niż raz z tej samej gałęzi.
JoelFan
1
To jest naprawdę bardzo przydatne
Avil