Czy masz gałęzie, znaczniki i katalogi trunkingowe nawet dla małych projektów?


7

Mam mieszankę małych i dużych projektów w SVN. Niektóre z nich są tak małe, że nie mogę przewidzieć, że się rozgałęzię lub otworzą.

Czy powinienem nadal trzymać się konwencji folderu trunk/branch/tag, nawet jeśli jestem przekonany, że katalogi branch/tag nie będą używane dla mniejszych projektów? Po prostu czuję, że to może być przesada.

Myśli na ten temat?

  0

@KingNestor, zredagowałem twój tytuł, by nieco lepiej odzwierciedlić to, o co prosisz. Dobre pytanie! 22 lut. 092009-02-22 06:33:24

19

Aby bezpośrednio odpowiedzieć na pytanie w tytule: nie, nie musisz. Repozytoria SVN mogą być zorganizowane w dowolnej strukturze folderów, którą wybierzesz.

W tym momencie dobrym pomysłem jest przynajmniej umieszczenie wszystkiego w folderze trunkingu, aby później zmienić zdanie i zdecydować, że rozgałęzienie lub tagowanie będzie przydatne, można dodać gałąź/tag foldery łatwo, bez konieczności przenoszenia wszystkiego.

+1

Oczywiście w SVN łatwo jest przenosić katalogi po fakcie. Jeśli więc nie wprowadzisz ich teraz i nie zdecydujesz, że potrzebujesz ich później, to naprawdę nie jest to wielka sprawa. 14 maj. 092009-05-14 20:42:22


2

Są to konwencje, więc co za bolesne je dodać. Jeśli twój projekt dotrze do punktu, w którym ich potrzebujesz, to znacznie łatwiej jest je założyć od samego początku, niż próbować dodać je po fakcie.


6

Używam katalogów branch/tag/trunk w Subversion nawet w przypadku banalnych projektów. Jest to praktycznie zerowy koszt i jest to warte spójności. Zawsze wiem, w jaki sposób mój projekt zostanie opracowany, jeśli kiedykolwiek będę potrzebować kasy.


0

W moim repozytorium SVN mam pojedynczy katalog trunk/branch/tag. Wszystkie moje projekty umieszczam w pniu i organizuję osobno katalogi gałęzi i znaczników w oparciu o projekty, które faktycznie osiągają stan tagowania. Konwencja może sugerować użycie katalogu branch/tag/trunk dla każdego projektu, ale może to być niepraktyczne, jeśli nie spodziewasz się, że będziesz tagować i tworzyć rozgałęzienia.

Nawet prywatne projekty mogą korzystać z nieczęstego oznaczania i rozgałęziania przed dużymi zmianami lub po długiej przerwie.


0

Zazwyczaj (lub oczywiście) rozgałęzienia/tagowanie są niezwykle użyteczne w zespołach, gdzie wielu programistów będzie pracować ze źródłem w tym samym czasie. Każdy programista działa we własnej branży, więc nie ma ryzyka, że ​​uda się uratować pracę innej osoby.

Jako jednoosobowa armia deweloperem, mam jeszcze znaleźć rozgałęzienia/tagging przydatna, gdy:

  1. muszę dokonać oddział eksperymentalną, nie rezygnując na źródła prądu roboczego. Wezmę to ponownie, jeśli kod eksperymentalny okaże się lepszy.

  2. Jeśli mam kilka oddzielnych komponentów, może być przydatne oznaczenie każdego z nich nazwą oznaczającą numer wersji projektu i umieszczenie ich w folderze znaczników nazwanym po projekcie. Pomoże to zachować zakładki, gdy chcesz wrócić do wersji 1.0.5.10 i musisz wiedzieć, co zmieniło się w komponencie Foo. Uwagi do commitów mogą nie być wystarczająco informacyjne.


0

Z mojego doświadczenia wynika, że ​​organizacja "trunk/branch/tag" jest dość dobrze wykorzystywanym układem sterowania źródłami. Widziałem to w wielu różnych organizacjach używających różnych narzędzi (ClearCase, SVN, CVS, żeby wymienić tylko kilka). Konfiguracja programu ClearCase, z którą obecnie pracuję, jest nieco bardziej wyrafinowana (zawiła?), Ale ogólnie rzecz biorąc, zastosowano bardzo podobny układ.

Chociaż nie jest to wymagane w SVN, zdecydowanie polecam przyzwyczajenie się do tego rodzaju układu, w tym scalanie do/z różnych gałęzi i pnia.

Dla projektów osobistych uważam oznaczanie za cenny sposób na zachowanie ostatecznych, niezmiennych wersji. Oddziały są zwykle zarezerwowane dla eksperymentalnych stycznych, więc nie zniszczę najnowszej (stabilnej) wersji mojego kodu, zanim rzeczywistość się nie pojawi.