Co to jest naprawdę proste "jak" robić rozgałęzienia i łączenia za pomocą TortoiseSVN?Jaki jest najprostszy sposób na rozgałęzianie i łączenie za pomocą TortoiseSVN?
Odpowiedz
Zakładając, że katalog praca pracuje od tułowia:
prawym przyciskiem myszy na „folderu roboczego root” (termin ten odnosi się zawsze do Windows Explorer) i zrobić svn update
zaktualizować folder roboczy do najnowszej bagażniku.
Upewnij się, że posiadany produkt jest stabilny.
Kliknij prawym przyciskiem myszy główny folder roboczy i wykonaj svn commit
, aby upewnić się, że wszelkie lokalne zmiany zostały zatwierdzone w magistrali.
Kliknij prawym przyciskiem myszy główny folder roboczy i wykonaj svn repo-browser
.
Jeśli nie masz jeszcze folderu oddziałów w repozytorium: kliknij prawym przyciskiem myszy folder tuż nad folderem trunkingu i zrób "utwórz folder" i utwórz folder oddziałów (na przykład, jeśli twój bagażnik to http://myserver/svn/MyRepository/MyProj/Trunk
, utworzyć http://myserver/svn/MyRepository/MyProj/Branches
).
Kliknij prawym przyciskiem myszy folder trunk i wykonaj Copy To:
i wprowadź nazwę nowego folderu dla oddziału. Na przykład: http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
. (Nie martw się, że to zmarnuje dużo miejsca ... nazywa się to "tanią kopią" ... w rzeczywistości nie kopiuje zawartości plików, chyba że ulegną one zmianie).
Zamknij przeglądarkę.
Kliknij prawym przyciskiem myszy katalog główny folderu roboczego i wykonaj: svn switch
i wybierz nazwę folderu dla nowego oddziału (na przykład http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
). Pozostaw wszystko inne domyślnie.
Teraz pracuj w swoim oddziale. Po przejściu do kamieni milowych kliknij prawym przyciskiem myszy główny folder roboczy i wykonaj svn commit
, aby zatwierdzić swój oddział. (To nie będzie widoczne w bagażniku).
Jeśli inni pracują w tej samej gałęzi, okresowo wykonaj svn update
z głównego folderu roboczego. To zaktualizuje się z oddziału. (NIE otrzyma aktualizacji z bagażnika).
Niezależnie od tego, czy inni pracują w tej samej branży, należy okresowo scalać zmiany z pnia, aby upewnić się, że oddział nie będzie zbyt trudny do późniejszej integracji. Aby przeprowadzić okresowe scalanie: kliknij prawym przyciskiem myszy katalog główny folderu roboczego i wykonaj svn merge
. Wybierz "Scal zakres wersji". W sekcji "Adres URL do scalenia" wybierz bagażnik (na przykład http://myserver/svn/MyRepository/MyProj/Trunk
). Pozostaw Revision Range pustą i pozostaw wszystko inne w spokoju. Kliknij Następny. Pozostaw wszystko w spokoju i kliknij Scalenie. Upewnij się, że wszystko nadal działa ... napraw, jeśli nie. Gdy będziesz zadowolony, wykonaj regularne svn update
z folderu głównego pracy, aby zaktualizować go z oddziału (jest to konieczne, nawet jeśli jesteś jedynym pracującym w oddziale, aby spełnić wymagania SVN). Następnie wykonaj svn commit
, aby zatwierdzić scalone zmiany trunkingowe do gałęzi. Możesz powtarzać ten krok cyklicznie tyle razy, ile chcesz.
Gdy twój oddział jest gotowy do integracji, wykonaj powyższy krok po raz ostatni i wykonaj ostateczne testy. Wykonaj ostateczne zatwierdzenie do oddziału.
Kliknij prawym przyciskiem myszy na folderze roboczym głównym i wykonaj kolejne svn switch
, tym razem przełączając się na trunk (na przykład http://myserver/svn/MyRepository/MyProj/Trunk
).Będzie to skutkowało zasadniczo "cofnięciem" całej pracy wykonanej w twojej branży, ale nie martw się ... dostaniesz swoją pracę z powrotem. (Będzie również zgłaszać wiele aktualizacji plików, które nie zostały zmienione w oddziale, ale są to tylko zmiany "właściwości SVN" ... nie martw się o nich.)
Kliknij prawym przyciskiem myszy na folderze roboczym i wykonaj svn merge
. Tym razem wybierz "Reintegrate a Branch". Dla adresu URL umieść w swoim oddziale (na przykład http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch
). Resztę zostaw sam i kliknij Dalej. Pozostaw wszystko w spokoju i kliknij Scalenie. Masz teraz całą pracę, którą wykonałeś w swoim oddziale, a także bieżącą pracę z bagażnika.
Wykonaj test końcowy. Wszystko powinno działać, ponieważ powinien to być ten sam zestaw plików, które miałeś w swoim ostatnim teście w oddziale. Kliknij prawym przyciskiem myszy na folderze roboczym root i wykonaj svn commit
. Zaakceptuj wszystko, nawet pliki, których nie używasz w swojej branży (po prostu mają "zmiany właściwości SVN", ale ich zatwierdzenie pomaga SVN śledzić wszystkie poprawki).
Pień ma teraz całą pracę oddziału, jak również całą pracę wykonaną w bagażniku podczas pracy w oddziale i wszystko działa. Ponadto SVN ma pełną historię wszystkich plików, nawet wersje, które zostały sprawdzone podczas pracy w oddziale.
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 bagażnik 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 dowolnej chwili, jeśli naprawdę potrzebujesz.)
Prosimy o komentarz!
- 1. jaki jest najprostszy sposób na usunięcie pierwszej i ostatniej linii z pliku za pomocą awk?
- 2. Jaki jest najprostszy sposób na iterację w tablicy tablic?
- 3. Jaki jest najprostszy sposób na uniknięcie HTML w Pythonie?
- 4. Jaki jest najprostszy sposób na usunięcie pustych NSStrings z NSArray?
- 5. Jaki jest najprostszy sposób na aktualizację schematu mnesii?
- 6. Jaki jest najprostszy sposób na utrzymanie map/struktur w Clojure?
- 7. Jaki jest najprostszy sposób na zbudowanie strony z rezerwacją spotkania?
- 8. Jaki jest najprostszy sposób zapisu na stdout w trybie binarnym?
- 9. Jaki jest najprostszy sposób na stworzenie ukształtowanego okna w wxPythonie?
- 10. Jaki jest najprostszy sposób wyczyszczenia wszystkich pseudo klas na elemencie?
- 11. Jaki jest najlepszy sposób na rozwiązanie konfliktu drzewa z TortoiseSVN, jeśli chcę zachować moje lokalne zmiany?
- 12. W jaki sposób łączenie wewnętrzne działa na relacji wiele do wielu za pomocą Doctrine i Symfony2
- 13. Jaki jest najprostszy sposób wywoływania adresu URL GET Http za pomocą Delphi?
- 14. Jaki jest najprostszy sposób wyczyszczenia bazy danych z CLI za pomocą manage.py w Django?
- 15. Jaki jest najprostszy sposób dodania zdjęcia profilowego za pomocą klejnotu Omniauth-Facebook?
- 16. ANTLR Jaki jest najprostszy sposób realizacji języka Pythona?
- 17. Jaki jest najprostszy sposób na zamianę wiersza HTML w tabeli za pomocą jQuery (nie przeciągnij i upuść)
- 18. Najprostszy sposób na "narysowanie" prostych linii na obrazku za pomocą jQuery i zapisanie w Rails DB?
- 19. Jaki jest najprostszy sposób wyświetlania plików statycznych za pomocą ASP.NET 5?
- 20. Jaki jest najprostszy sposób wywołania adresu URL POST HTTP za pomocą Delphi?
- 21. Jaki jest najprostszy sposób tworzenia aplikacji wielowątkowych za pomocą C/C++?
- 22. Jaki jest najprostszy sposób na wystrzelenie i zapomnienie wątku w języku C++/Qt na Linuksie?
- 23. Najprostszy sposób na pobranie pliku?
- 24. Najlepszy sposób na łączenie flag całkowitych za pomocą Kotlin?
- 25. Najprostszy sposób zapisu i odczytu XML
- 26. Jaki jest najprostszy międzyplatformowy sposób wyświetlania okien dialogowych w Pythonie?
- 27. Jaki jest najprostszy sposób obsługi zdarzenia SelectedItem z MVVM?
- 28. Jaki jest najprostszy sposób wykonania klasy Java co 30 sekund?
- 29. Najprostszy sposób buforowania wyników zapytania MySQL za pomocą PHP?
- 30. Jaki jest najprostszy sposób zdefiniowania zmiennej lokalnej w Oracle?
725 słów jest proste? – RedFilter
Powiedziałem "najprostszy", a nie "prosty" :) – JoelFan
To było bardzo pomocne, dziękuję! – Funka