Jak utworzyć oddział w SVN?
Rozgałęzianie w Subversion jest ułatwione przez bardzo lekkie i wydajne narzędzie do kopiowania.
Rozgałęzianie i tagowanie są w rzeczywistości takie same. Wystarczy skopiować cały folder z repozytorium do innego miejsca w repozytorium za pomocą svn copy
polecenia.
Zasadniczo oznacza to, że to zgodnie z konwencją oznacza kopiowanie folderu - niezależnie od tego, czy jest to kopia zapasowa, tag, gałąź czy cokolwiek innego. W zależności od tego, jak chcesz myśleć o rzeczach (zwykle w zależności od tego, jakiego narzędzia SCM używałeś w przeszłości), musisz skonfigurować strukturę folderów w repozytorium, aby obsługiwać twój styl.
Wspólne style mają mieć kilka folderów na górze repozytorium o nazwie tags
, branches
, trunk
, etc. - który pozwala na kopiowanie całych trunk
(lub sub-zestawy) do tags
i / lub branches
folderów. Jeśli masz więcej niż jeden projekt, możesz zreplikować tego rodzaju strukturę w ramach każdego projektu:
Przyzwyczajenie się do tej koncepcji może chwilę potrwać, ale działa - po prostu upewnij się, że ty (i twój zespół) przestrzegacie konwencji, których zamierzacie użyć. Dobrze jest też mieć dobrą konwencję nazewnictwa - coś, co mówi ci, dlaczego gałąź / tag został utworzony i czy nadal jest właściwe - rozważ sposoby archiwizacji nieaktualnych gałęzi.
svn cp
używa tanich kopii, nie kopiuje rzeczywistych plików podczas rozgałęziania. Zobacz svnbook.red-bean.com/en/1.1/ch04s02.htmlUtwórz nowy oddział za pomocą
svn copy
polecenia w następujący sposób:źródło
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
(jeśli chcesz zmienić bieżące zamówienie na nową gałąź) lubsvn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(jeśli chcesz mieć nową gałąź w oddzielnym katalogu), aby rozpocząć pracę na nowo utworzonej gałęzi.--parents
opcjisvn copy
!-m
opcję, pojawi się komunikat „Lubię to”svn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. Z-m
tym mówisvn: E205009: Local, non-commit operations do not take a log message or revision properties
. (Zamieniłem adresy, ale one istnieją, oprócz ofc, nowego katalogu gałęzi i całej ścieżki + adresu URL, który SVN z jakiegoś powodu scalił się w błędzie) .Jeśli Twoje repozytorium jest dostępne przez https, możesz użyć tego polecenia do rozgałęzienia ...
źródło
Jeśli masz jakieś lokalne zmiany w bagażniku, użyj
Rsync
do synchronizacji zmianźródło
rsync
w ten sposób.svn cp
skopiuje również wszelkie lokalne zmiany.Załóżmy, że chcesz utworzyć gałąź z nazwy pnia (jako „TEST”), a następnie użyj:
źródło
Zwykle skopiowałbyś go do svn + ssh: //host.example.com/repos/project/branches/mybranch, abyś mógł przechowywać kilka oddziałów w repozytorium, ale twoja składnia jest poprawna.
Oto kilka porad dotyczących konfiguracji układu repozytorium .
źródło
Najlepsza wskazówka dla nowych użytkowników SVN; może to trochę pomóc w szybkim uzyskiwaniu poprawnych adresów URL.
Uruchom,
svn info
aby wyświetlić przydatne informacje o bieżącym wyrejestrowanym oddziale.Adres URL powinien (jeśli uruchomisz svn w folderze głównym) dać adres URL, z którego chcesz skopiować.
Aby również przejść do nowo utworzonego oddziału, użyj
svn switch
polecenia:źródło
Jeśli nawet planujesz połączyć swój oddział, gorąco polecam, abyś spojrzał na to:
Svnmerge.py
Słyszę, że Subversion 1.5 buduje więcej śledzenia scalania, nie mam z tym doświadczenia. Mój projekt jest na 1.4.x, a svnmerge.py to ratowanie życia!
źródło
źródło
Poniżej znajdują się kroki, aby utworzyć gałąź z pnia za pomocą TortoiseSVN w maszynie z systemem Windows. To oczywiście wymaga zainstalowania klienta TortoiseSVN.
źródło