Co to jest naprawdę proste „jak” zrobić rozgałęzianie i scalanie przy użyciu TortoiseSVN?
Odpowiedzi:
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 update
aby 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 commit
aby 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 switch
i 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 commit
aby zatwierdzić swoją gałąź. (Tego nie widać w bagażniku).
Jeśli inni pracują nad tą samą gałęzią, okresowo rób to svn update
z 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 update
z 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 commit
zatwierdzić 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!