Około pół roku temu zostałem przydzielony do badania, aby odpowiedzieć na to pytanie. Oto podsumowanie na podstawie zbadanych referencji (wymienionych poniżej)
http://msdn.microsoft.com/en-us/library/aa730834%28v=vs.80%29.aspx
... Wybór najlepszej strategii rozgałęziania jest działaniem równoważącym. Musisz zmniejszyć zyski wydajności w stosunku do zwiększonego ryzyka. Jednym ze sposobów walidacji wybranej strategii jest rozważenie scenariusza zmian. Na przykład, jeśli zdecydujesz się wyrównać gałęzie z architekturą systemu (na przykład gałąź reprezentuje komponent systemu) i oczekujesz znacznych zmian architektonicznych, być może będziesz musiał zrestrukturyzować swoje gałęzie oraz powiązane procesy i zasady przy każdej zmianie. Wybór nieodpowiedniej strategii rozgałęziania może spowodować narzuty procesowe i długie cykle integracji i wydawania, które są frustrujące dla całego zespołu ...
http://www.cmcrossroads.com/bradapp/acme/branching/
... Częsta, stopniowa integracja jest jednym z drogowskazów sukcesu, a jej brak często charakteryzuje porażkę. Obecne metody zarządzania projektami mają tendencję do unikania ścisłych modeli wodospadu i obejmują spiralne modele iteracyjnego / przyrostowego rozwoju i ewolucyjnego dostarczania. Przyrostowe strategie integracji, takie jak Merge Early i Często i ich warianty, są formą zarządzania ryzykiem, które próbuje wypłukać ryzyko na wcześniejszym etapie cyklu życia, gdy jest więcej czasu na zareagowanie na nie. Regularność rytmu między integracjami jest postrzegana przez [Boocha], [McCarthy] i [McConnell] jako wiodący wskaźnik stanu zdrowia projektu (jak „puls” lub „bicie serca”).
Nie tylko wczesna i częsta integracja ujawnia ryzyko wcześniej i w mniejszych „kawałkach”, ale także komunikuje zmiany między członkami drużyny ...
http://www.codinghorror.com/blog/2007/10/software-branching-and-parallel-universes.html
... W większości systemów kontroli źródła możesz tworzyć setki oddziałów bez żadnych problemów z wydajnością; to mentalny koszt śledzenia wszystkich gałęzi, o które naprawdę musisz się martwić ... Rozgałęzienie to złożona bestia. Istnieje wiele sposobów na rozgałęzienie i nikt nie jest w stanie powiedzieć, czy robisz to dobrze, czy źle ...
http://www.lostechies.com/blogs/derickbailey/archive/2010/02/24/branching-strategies-when-to-branch-and-merge.aspx
... Istnieje wiele aspektów systemu, które należy wziąć pod uwagę podczas rozgałęziania kodu ... Ostatecznie, celem jest zapewnienie piaskownicy dla kontekstu, w którym kod jest pisany. Zrozumienie dostępnych opcji, kiedy każda opcja najlepiej pasuje do danej sytuacji, a koszt tych opcji pomoże ci zdecydować, jak i kiedy rozgałęzić ...
http://www.snuffybear.com/ucm_branch.htm
Uwaga: biorąc pod uwagę inne wymienione tutaj odniesienia, twierdzenie autora, że „w tym artykule opisano trzy kluczowe modele rozgałęziające stosowane w projektach inżynierii oprogramowania” nie wydaje się uzasadnione. Zastosowana terminologia nie wygląda na rozpowszechnioną ( EFIX , Model-1,2,3 itd.).
http://svn.haxx.se/users/archive-2007-10/att-0101/SCMBranchingModels-talkback.pdf
Odnośnik przedstawia interesujący przykład trudności w komunikowaniu strategii rozgałęziania.
http://simpleprogrammer.com/2010/06/04/simple-branching-strategy-part-1-back-to-basics/
... Uprość to. Moim zdaniem praca bezpośrednio z pnia jest zdecydowanie najlepszym podejściem.
To prawie brzmi jak herezja, kiedy faktycznie wpisuję ją na ekranie, ale jeśli wytrzymasz przez chwilę, nie tylko pokażę ci, dlaczego uważam, że jest to niezbędne dla procesu zwinnego, ale pokażę, jak aby działało ...
... Gdybym musiał oprzeć moje rozumowanie na jednym solidnym argumencie, byłaby to wartość ciągłej integracji. W przeszłości pisałem na blogu o wartości CI i najlepszych praktykach . Jestem wielkim orędownikiem CI ...
... Naprawdę trzeba zadać sobie pytanie tutaj: „Czy wszystko napowietrznej jesteś ponoszenia z robienie skomplikowanych rozgałęzienia i łączenie strategii wynikającej z rzeczywistej wartości, która nie istnieje na bardziej prosty strategii?” ...
.. Strategia, którą skutecznie stosowałem w przeszłości i rozwijałem się z czasem. Podsumuję to krótko tutaj.
- Wszyscy pracują poza bagażnikiem.
- Rozgałęzienie po zwolnieniu kodu.
- Oddziel wydanie, gdy musisz utworzyć poprawkę błędu dla już wydanego kodu.
- Oddział prototypów.
...
http://www.codelathe.com/blog/index.php/2009/07/02/a-svn-branching-strategy-that-works/
... Wreszcie pamiętaj, że nie ma idealnej strategii rozgałęziania i łączenia. To zależy w dużej mierze od twojego unikalnego środowiska programistycznego ...
http://blog.perforce.com/blog/?cat=62
... Najgorszym scenariuszem jest wprowadzenie problemu „scalania semantycznego”, w którym wynik automatycznego scalania jest nieprawidłowy, ale kompiluje się OK i przemyka testowanie, być może nawet wystarczająco długo, by być zauważalnym przez klienta błędem. Eek!
Dodając zniewagę do obrażeń, ponieważ mogą one dłużej uniknąć wykrycia, problemy scalania semantycznego są trudniejsze do naprawienia później, ponieważ zmiana nie jest już świeża w umyśle twórcy, który ją wprowadził. (Zazwyczaj najlepiej scalić zmiany wkrótce po ich wprowadzeniu, najlepiej przez programistę, który je wprowadził, jeśli jest to praktyczne) ...
https://stackoverflow.com/questions/34975/branching-strategies
Członkowie społeczności dzielą się różnymi doświadczeniami w różnych projektach przy użyciu różnych strategii rozgałęziania. Brak uzgodnionego konsensusu w sprawie „najlepszego” lub „najgorszego”.
http://www.stickyminds.com/s.asp?F=S16454_COL_2
Zasadniczo krótkie streszczenie rzeczy przedstawione w http://oreilly.com/catalog/practicalperforce/chapter/ch07.pdf
- http://www.stickyminds.com/s.asp?F=S16511_COL_2
... Istnieją trzy typowe podejścia do decydowania, kiedy i jak wykonać oddział:
- Utwórz gałąź wydania po zakończeniu funkcji i zaplanuj naprawienie problemów z ostatniej chwili w tym wierszu kodu. W tym przypadku gałąź wydania jest tak naprawdę „wierszem kodu przygotowawczego do wydania”, jak opisano w wzorcach zarządzania konfiguracją oprogramowania , ponieważ oczekuje się, że nadal jest wiele do zrobienia.
- Zmień styl pracy, aby uniknąć końcowej pracy integracyjnej, pracując poza aktywną linią programistyczną.
- Rozgałęzienie dla nowej pracy poprzez utworzenie gałęzi zadania i scalenie tej pracy w aktywną linię programistyczną po zakończeniu wydania.
... Uzasadnieniem dla rozgałęzień jest izolacja kodu na końcu wydania, aby mógł się ustabilizować. Izolacja poprzez rozgałęzienie często maskuje problem z jakością, który ostatecznie przejawia się w dodatkowym koszcie utrzymania równoległych strumieni przed wydaniem produktu. Rozgałęzienie jest łatwe. Raczej jest to łączenie i poznawczy narzut związany ze zrozumieniem, jak zmiany przepływają między gałęziami, które są trudne, dlatego ważne jest, aby wybrać proces, który minimalizuje koszty rozgałęzień i scalania ...
http://nvie.com/posts/a-successful-git-branching-model/ Strategia zorientowana na Git.
... Uważamy origin / master za główną gałąź, w której kod źródłowy HEAD zawsze odzwierciedla stan gotowości do produkcji .
Uważamy pochodzenie / rozwój za główną gałąź, w której kod źródłowy HEAD zawsze odzwierciedla stan z najnowszymi dostarczonymi zmianami programistycznymi dla następnej wersji. Niektórzy nazywają to „gałęzią integracji”. To tutaj budowane są automatyczne kompilacje nocne.
http://svnbook.red-bean.com/en/1.5/svn.branchmerge.html
... zasady projektu różnią się znacznie w zależności od tego, kiedy należy utworzyć gałąź funkcji. Niektóre projekty nigdy nie używają gałęzi funkcji: commits do / trunk są dostępne dla wszystkich. Zaletą tego systemu jest to, że jest prosty - nikt nie musi się uczyć o rozgałęzianiu lub scalaniu. Wadą jest to, że kod trunk jest często niestabilny lub nie nadaje się do użytku. Inne projekty wykorzystują gałęzie do skrajności: żadna zmiana nigdy nie jest bezpośrednio związana z pniem. Nawet najbardziej trywialne zmiany są tworzone w krótkotrwałej gałęzi, dokładnie sprawdzane i łączone w pień. Następnie gałąź jest usuwana. System ten gwarantuje wyjątkowo stabilny i użyteczny bagażnik przez cały czas, ale kosztem ogromnegokoszty ogólne.
Większość projektów stosuje podejście zorientowane na środek drogi. Zazwyczaj nalegają, aby / trunk kompilował i przechodził testy regresji przez cały czas. Gałąź funkcji jest wymagana tylko wtedy, gdy zmiana wymaga dużej liczby zatwierdzeń destabilizujących. Dobrą zasadą jest zadawanie tego pytania: jeśli programista pracował kilka dni w odosobnieniu, a następnie dokonał dużej zmiany naraz (tak aby / trunk nigdy nie był destabilizowany), czy byłaby to zbyt duża zmiana, aby ją przejrzeć? Jeśli odpowiedź na to pytanie brzmi „tak”, zmianę należy opracować w gałęzi funkcji. Ponieważ programista dokonuje przyrostowych zmian w oddziale, mogą być łatwo przeglądane przez współpracowników.
Wreszcie pojawia się kwestia tego, jak najlepiej utrzymywać gałąź funkcji w „synchronizacji” z pniem w miarę postępu pracy. Jak wspomnieliśmy wcześniej, istnieje ogromne ryzyko związane z pracą w oddziale przez tygodnie lub miesiące; zmiany pnia mogą nadal napływać do tego stopnia, że dwie linie rozwoju różnią się tak bardzo, że może stać się koszmarem próbującym połączyć gałąź z powrotem do pnia.
Takiej sytuacji najlepiej uniknąć, regularnie łącząc zmiany pnia z oddziałem. Wymyśl polisę: raz w tygodniu połącz wartości pnia zeszłego tygodnia z oddziałem ...
http://thedesignspace.net/MT2archives/000680.html
... Ta sekcja samouczka Eclipse CVS jest oparta na artykule Paula Glezena na stronie internetowej Eclipse: Rozgałęzianie za pomocą Eclipse i CVS i jest używana za jego zgodą na warunkach licencja EPL. Zmiany, które wprowadzam w jego wersji, polegają głównie na rozszerzeniu jej o kolejne obrazy i wyjaśnienia krok po kroku oraz zintegrowanie z własnymi samouczkami dla początkujących, aby uczynić ją bardziej dostępną dla początkujących i projektantów. Doświadczeni programiści prawdopodobnie wolą pracować od wersji Paula ...
http://learnsoftwareprocesses.com/2007/12/29/common-branching-strategies/
... Oto niektóre z typowych modeli rozgałęziających:
- Model międzygałęziowy: Jedną z najczęstszych strategii rozgałęziania jest dostosowanie oddziałów do wersji produktów. Oddział posiada wszystkie zasoby programistyczne dla jednej wersji. Czasami aktualizacje muszą zostać scalone z jednej wersji do drugiej, ale zwykle nigdy się nie łączą. Oddziały zostaną wycofane po wycofaniu wersji.
- Oddziały na promocję: Innym bardzo popularnym podejściem jest dostosowanie oddziałów do poziomów promocji zasobów oprogramowania. Konkretna wersja programistyczna jest podzielona na gałąź Test, w której przeprowadzana jest cała integracja i testy systemu. Po zakończeniu testowania zasoby programistyczne są rozgałęzione do działu produkcji i ostatecznie wdrożone.
- Oddział według zadania: Aby uniknąć nakładania się zadań (lub działań) i utraty wydajności, możesz odizolować je w osobnym oddziale. Należy pamiętać, że są to oddziały krótkoterminowe, które należy połączyć natychmiast po zakończeniu zadania, ponieważ w przeciwnym razie wymagany wysiłek scalania może przekroczyć korzyści produktywności wynikające z ich utworzenia.
- Odgałęzienie na komponent: Można wyrównać każdą gałąź z architekturą systemu. W tej strategii rozgałęziasz poszczególne komponenty (lub podsystemy). Następnie każdy zespół opracowujący komponent decyduje, kiedy ponownie połączyć swój kod z linią programistyczną, która służy jako gałąź integracji. Ta strategia może działać dobrze, jeśli architektura systemu jest na miejscu, a poszczególne komponenty mają dobrze zdefiniowane interfejsy. Fakt, że tworzysz komponenty w gałęziach, umożliwia bardziej szczegółową kontrolę nad zasobami programistycznymi.
- Branża według technologii: kolejna strategia rozgałęziania dostosowana do architektury systemu. W tym przypadku gałęzie są dostosowane do platform technologicznych. Wspólny kod jest zarządzany w oddzielnej gałęzi. Ze względu na wyjątkowy charakter zasobów programistycznych zarządzanych w oddziałach, prawdopodobnie nigdy nie łączą się ...
http://msdn.microsoft.com/en-us/library/bb668955.aspx
... Zapoznaj się z wytycznymi dotyczącymi rozgałęziania i łączenia w „Wytycznych dotyczących kontroli źródła” w niniejszym przewodniku, aby uzyskać podsumowanie wytycznych dotyczących rozgałęziania i łączenia. ... Rozgałęziając, weź pod uwagę następujące kwestie:
- Nie rozgałęziaj, chyba że zespół programistów musi jednocześnie pracować nad tym samym zestawem plików. Jeśli nie masz co do tego pewności, możesz oznaczyć kompilację i utworzyć gałąź z tej kompilacji w późniejszym terminie. Scalanie gałęzi może być czasochłonne i złożone, zwłaszcza jeśli między nimi zachodzą znaczące zmiany.
- Ułóż drzewa gałęzi w taki sposób, aby wystarczyło scalić je wzdłuż hierarchii (w górę i w dół drzewa gałęzi), a nie w całej hierarchii. Rozgałęzienie w hierarchii wymaga użycia bezpodstawnego scalenia, które wymaga bardziej ręcznego rozwiązywania konfliktów.
- Hierarchia rozgałęzień oparta jest na nadrzędnym i podrzędnym odgałęzieniu, które mogą różnić się od fizycznej struktury kodu źródłowego na dysku. Planując połączenia, pamiętaj o logicznej strukturze gałęzi, a nie o strukturze fizycznej na dysku.
- Nie rozgałęziaj się zbyt głęboko. Ponieważ wykonanie każdego scalenia i rozwiązanie konfliktu zajmuje dużo czasu, głęboka struktura rozgałęzień może oznaczać, że zmiany w gałęzi potomnej mogą zająć bardzo dużo czasu, zanim zostaną przeniesione do gałęzi głównej. Może to negatywnie wpłynąć na harmonogramy projektów i wydłużyć czas usuwania błędów.
- Oddział na wysokim poziomie i dołącz pliki konfiguracyjne i źródłowe.
- Rozwijaj swoją strukturę rozgałęzień w czasie.
- Scalanie wymaga co najmniej jednego programisty do wykonania scalenia i rozwiązania konfliktów. Połączone źródło musi zostać gruntownie przetestowane, ponieważ podejmowanie złych decyzji dotyczących scalania, które mogą destabilizować kompilację, jest rzadkie.
- Scalanie w hierarchii gałęzi jest szczególnie trudne i wymaga ręcznej obsługi wielu konfliktów, które w innym przypadku mogłyby być obsługiwane automatycznie.
Decyzję o utworzeniu oddziału można sprowadzić do tego, czy koszt łączenia konfliktów w czasie rzeczywistym jest wyższy niż narzut kosztów łączenia konfliktów między oddziałami ...
http://kashfarooq.wordpress.com/2009/11/23/bazaar-branching-strategy-with-a-subversion-trunk/
http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/thread/f127676c-8f05-410c-9a30-0eb43a26a9fa
omówienie najlepszych praktyk dotyczących wydania strategii izolacji gałęzi izolacji w przypadku ewoluujących systemów.
http://branchingguidance.codeplex.com/
„Wskazówki dotyczące rozgałęziania serwera Microsoft Team Foundation Server” - obszerny i szczegółowy dokument z zaleceniami dostosowanymi do różnych projektów: tutaj wersja HTML . Udowadnia, że Microsoft nie wierzy w strategie rozgałęziania w jednym uniwersalnym podejściu.
https://stackoverflow.com/questions/597707/best-branching-strategy-when-doing-continuous-integration
Jaka jest najlepsza strategia rozgałęziania, gdy chcesz wykonywać ciągłą integrację? ... Odpowiedź zależy od wielkości zespołu i jakości kontroli źródła oraz możliwości scalania poprawnie złożonych zestawów zmian ...
- http://www.zeroturnaround.com/blog/continuous-integration-and-feature-branches/
bardziej szczegółowa analiza rozgałęziającej się interakcji z ciągłą integracją, oparta na konkretnych doświadczeniach z Hudson / Jenkins - wraz z kilkoma przydatnymi odniesieniami
.. . Moim największym odkryciem było to, że chociaż CI polega na częstym popełnianiu, popychaniu i uzyskiwaniu informacji zwrotnych (tj. Klaster CI zapewnia informacje zwrotne, których stacja robocza nigdy nie mogłaby dać ci w tym samym czasie), prawdziwy purystyczny CI ma jeszcze jedno wymaganie - że zespół musi pracować na tym samym poziomie podstawowym ...
Użyte materiały
http://codicesoftware.blogspot.com/2010/03/branching-strategies.html
... CVS i SVN zniechęcały do całej strategii rozgałęziania / łączenia, ponieważ nie były w stanie tego zrobić ... ... Prosta zasada: utwórz gałąź zadań dla każdej nowej funkcji lub poprawki, którą zaimplementujesz ... Może to brzmieć jak przesada dla użytkowników SVN / CVS, ale wiesz, że każdy nowoczesny SCM pozwoli ci utworzyć gałęzie w ciągu sekundy, więc nie ma prawdziwego narzutu.
Ważna uwaga: jeśli przyjrzysz się temu uważnie, zobaczysz, że mówię o używaniu gałęzi zadań jako list zmian bogatych ...
http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_proj.doc/c_bntr_plnbrstrat.htm
... Rozwój ma wpływ na zasady rozgałęziania cele projektu i zapewnia mechanizm kontroli ewolucji bazy kodu. Istnieje tyle odmian zasad rozgałęziania, ile organizacji używających kontroli wersji produktu Rational ClearCase. Ale są też podobieństwa, które odzwierciedlają powszechne przestrzeganie najlepszych praktyk ...
http://blogs.open.collab.net/svn/2007/11/branching-strat.html
... Model Subversion (lub dokładniej ogólny model open source) jest pokazany w niestabilnym modelu pnia. .
http://en.wikipedia.org/wiki/Trunk_%28software%29
W dziedzinie rozwoju oprogramowania pień odnosi się do nienazwanej gałęzi (wersji) drzewa plików pod kontrolą wersji . Pień zwykle ma stanowić podstawę projektu, w ramach którego postępuje rozwój. Jeśli programiści pracują wyłącznie na pniu, zawsze zawiera najnowszą najnowszą wersję projektu, ale może być również najbardziej niestabilną wersją. Innym podejściem jest oddzielenie gałęzi od pnia, wprowadzenie zmian w tej gałęzi i scalenie zmian z powrotem do pnia, gdy gałąź okaże się stabilna i działa. W zależności od trybu programowania i zatwierdzeniazasady pień może zawierać najbardziej stabilną lub najmniej stabilną lub pośrednią wersję.
Często główne prace programistyczne mają miejsce w pniu, a stabilne wersje są rozgałęzione, a sporadyczne poprawki błędów są łączone z gałęzi do pnia. Kiedy opracowywanie przyszłych wersji odbywa się w gałęziach innych niż pień, zwykle dzieje się tak w przypadku projektów, które nie zmieniają się często lub gdy oczekuje się, że zmiana zajmie dużo czasu, zanim będzie gotowa do włączenia do pnia. .
http://www.mcqueeney.com/roller/page/tom/20060919
... Są to notatki z webinaru na temat najlepszych praktyk Subversion , przeprowadzonego 30 sierpnia 2006 przez CollabNet. ... Dwie strategie organizacyjne: niestabilny pień vs. stabilny pień ... ... PREFERUJ niestabilny pień, jeśli to możliwe ...
https://stackoverflow.com/questions/153812/subversion-is-trunk-really-the-best-place-for-the-main-development
W SVN trunk jest zalecanym miejscem dla głównego rozwoju i używam tej konwencji dla wszystkich moich projektów. Oznacza to jednak, że pień jest czasami niestabilny, a nawet zepsuty ... ... czy nie lepiej byłoby zrobić „dziki rozwój” na jakiejś gałęzi, takiej jak / branch / dev, i połączyć się z pniem tylko, gdy kompilacja jest rozsądna solidny?
- ... Tu właśnie ma nastąpić ciągły rozwój pnia. Naprawdę nie powinieneś mieć problemu z „uszkodzonym” kodem, jeśli wszyscy testują ich zmiany przed ich zatwierdzeniem. Dobrą zasadą jest wykonanie aktualizacji (pobranie całego najnowszego kodu z repozytoriów) po zakodowaniu zmian. Następnie zbuduj i wykonaj testy jednostkowe. Jeśli wszystko się kompiluje i działa, powinieneś to sprawdzić ...
- ... Nie, bagażnik nie jest najlepszym miejscem. W naszej organizacji zawsze stosujemy takie podejście: Trunk zawiera kod wydania, więc zawsze się kompiluje. Z każdym nowym wydaniem / kamieniem milowym otwieramy nowy oddział. Za każdym razem, gdy deweloper jest właścicielem elementu, tworzy nowy oddział do tej gałęzi wydania i łączy go z gałęzią wersji dopiero po przetestowaniu. Gałąź wydania jest połączona w pień po testowaniu systemu ...
http://blog.yclian.com/2009/03/working-on-branches-and-stable-trunk.html
... Kiedyś pracowałem na pniu, ponieważ dla wszystkich projektów, nad którymi pracowałem, to albo byłem jedyny programista lub zespół zapewnił, że każdy kod odprawy zdał testy lokalne. W przeciwnym razie stworzyliśmy (nadal) gałęzie dla poprawek błędów, duży kod dla nowych funkcji itp.
Około 2 miesiące temu miałem krótką sesję git z Kamalem i podzielił się ze mną ideą historii / gałęzi . A kiedy mój zespół zaczął się rozwijać z większą liczbą deweloperów, odczuwam potrzebę zachęcania do dalszego rozwoju i teraz stało się to regułą. W przypadku projektu ze zautomatyzowanymi testami zdefiniowanymi z ustawieniem CI zagwarantowany jest stabilny bagażnik i ta praktyka może do niego bardzo dobrze wpasować.
Nie używamy git, ale Subversion, ponieważ tak się zaczęliśmy i nadal czujemy się z tym dobrze (przez większość czasu) ...
http://www.ericsink.com/scm/scm_branches.html
Jest to część książki online o nazwie Source Control HOWTO , przewodnika po najlepszych praktykach kontroli źródła, kontroli wersji i zarządzania konfiguracją ...
... Preferowane rozgałęzienie Erica Ćwicz ... Zachowaj „zasadniczo niestabilny” bagażnik. Czyń swój aktywny rozwój w bagażniku, którego stabilność wzrasta w miarę zbliżania się do wydania. Po wysyłce utwórz gałąź serwisową i zawsze utrzymuj ją bardzo stabilną ...
... W następnym rozdziale zagłębię się w temat łączenia gałęzi ...
http://marc.info/?l=forrest-dev&m=112504297928196&w=2
Poczta początkowa wątku omawiającego strategie rozgałęziania dla projektu Apache Forrest
- zauważ, że obecnie projekt wydaje się wykorzystywać niestabilny model pnia z gałęziami wydania:
- „Prace nad rozwojem są wykonywane na pniu SVN ... Istnieją„ gałęzie wydania ”SVN, np. Forrest_07_branch.” ( wytyczne projektu )
- „Budowanie pakietów kandydujących do wydania ... 17. Utwórz gałąź obsługi w SVN ...” ( Jak zwolnić )
Dokumenty rozgałęziające O'Reilly CVS:
http://commons.oreilly.com/wiki/index.php/Essential_CVS/Using_CVS/Tagging_and_Branching#Basically_stable
- ... Zasadniczo stabilna filozofia rozgałęziania stanowi, że bagażnik powinien zawierać dane projektu, które są zawsze bliskie gotowości do wydania ... bagażnik samochodowy. Takie łagodne podejście wymaga rozgałęzienia kandydata do wydania i poddania go pełnej analizie jakości przed publikacją ...
- ... Zasadniczo niestabilna filozofia mówi, że pień powinien zawierać najnowszy kod, niezależnie od jego stabilności, oraz że kandydaci do wydania powinni być rozgałęzieni w celu zapewnienia jakości.
... Bardziej łagodne odmiany pozwalają również na rozgałęzienia kodu eksperymentalnego, refaktoryzacji i innych kodów specjalnych. Scalanie gałęzi z powrotem do pnia odbywa się przez kierowników oddziału. ...
- Uwaga: powyższe zasoby nie pojawiły się w żadnym z przeprowadzonych przeze mnie wyszukiwań (wytyczne dotyczące CVS nie są już popularne?)
Najlepsze praktyki w SCM (artykuł perforce) na
stronie http://www.perforce.com/perforce/papers/bestpractices.html
... sześć ogólnych obszarów wdrażania SCM i niektóre gruboziarniste najlepsze praktyki w każdym z tych obszarów. Poniższe rozdziały wyjaśniają każdy element ...
Obszary robocze, kodele, rozgałęzienia, zmiana propagacji, kompilacje, proces ...