![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Dzisiaj chciałbym poprosić Was o wytłumaczenie jednej rzeczy w związku z svn'em (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A mianowicie chodzi mi o sprawę tak zwanych: - Trunk - rozumiem, że to jest aktualna wersja nad którą pracuję - Tags - rozumiem, że to są różne wersje programu, których już nie zmieniam - Branches - a tutaj rozumiem, że pracuje się nad wersjami, które mogą potem jak będą gotowe trafić do tags Czy dobrze rozumuję ? Jeśli nie to proszę o wyjaśnienie jak to traktować. Dodatkowo proszę o informację jak nimi zarządzać - tj. jak kopiować te dane z trunk do tags, z branches do tags itp. Szukałem na google ale nie znalazłem informacji, które by mi to pokazały jak krowie na rowie tak bym zrozumiał. I powiedźcie czy ten Trac jest faktycznie tak dobry i czy coś mi ułatwi w pracy ? Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam, Łukasz |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Osobiście nie używam już SVN-a (na rzecz GITa), ale z tego co wiem, to jest tak:
Branches, to różne gałęzie rozwijane równolegle Trunk, to główna gałąź (aktualna). Odpowiednik GIT-owskiego master Tags, nie wiem co to jest, ale wujek google (jeśli dobrze go zrozumiałem) powiedział, że to są nieaktualne (nierozwijane) gałęzie/wersje projektu A do narzędzi typu trac się nie przekonałem, nie sądze aby pomagał w pracy. Może dlatego, że mój projekt jest dość mały, jednoosobowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował radex_p 6.08.2008, 10:20:16 |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Tags - tak, czy "werje", nazwal bym to "wydania", 1.0, 1.1, etc, (wersje tlumacze nizej)
Branches - rozgalezienia programu, yh, malo ich uzywalem, ale chodzi o to zeby byly rozne wersje [powiedzmy tak jak w php, 4ka i 5tka] softu i zeby mozna commitowac w czasie ich opracowywania, bo nie mozesz/nie da sie miec roznych wersji w trunku (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Jak kopiowac? Albo toolem, albo svn cp trunk tags/release_1_0_0 # bez "/" na koncu!!! W tracu masz tickety, zarzadzanie nimi, pluginy, powiadomianie na majla, rozniste przegladanie ticketow, i podglad kodu przez svn browser. Jesli tak prowadzisz projekt [wiele osob w projecie, projekt calkiem duzy itd; zamiast np. listy todo.txt] to ci sie przyda. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
@dr_bonzo:
dziękuję za informacje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A powiedz mi czy trac pomoże mi w tych przenosinach do tags'ów czy nie za bardzo ? I takie jeszcze pytanie - czy mogę jakoś ustawić by dany użytkownik mógł tylko czytać/pisać powiedzmy jednego brancha - czyli de facto miał tylko dostęp do np /branches/v1.0 a nic innego nie mógł odczytać ? (pytam ponieważ jeszcze nie doszedłem w dokumentacji do tego jak to robić a przydałaby mi się taka opcja) A może znasz jakiś dobry dostępny w sieci podręcznik z którego bym się douczył svn'a ? Na razie projekt jednoosobowo będę robił ... ale podejrzewam, że prędzej czy później się rozrośnie. pozdrawiam, Łukasz |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A powiedz mi czy trac pomoże mi w tych przenosinach do tags'ów czy nie za bardzo ? Jeśli chodzi o SVN to trac nic nie ma z nim wspólnego. To jest "tępe" narzędzie, które tylko wyświetla informacje pobrane z SVN'a.Ma na celu pokazywanie repozytorium, gałęzi, plików, pokazywanie różnic pomiędzy wersjami, etc. Nie da się za jego pomocą manipulować repozytorium. No chyba że pojawiły się jakieś sprytne pluginy. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dzięki mike.
Więc na razie mogę trac'a zostawić na trochę później (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jeśli dobrze rozumiem to do robienia wersji powinienem sobie napisać jakieś skrypty albo z palca klepać polecenia svn ... a może są jakieś ciekawe narzędzia do tego ? pozdrawiam, Łukasz Ten post edytował Kocurro 6.08.2008, 10:34:34 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jeśli dobrze rozumiem to do robienia wersji powinienem sobie napisać jakieś skrypty albo z palca klepać polecenia svn A ty co, sadomaso? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Do eclipsa jest kilka pluginow, np. subclipse. Bardzo fajnie sie nim zarządza projektem. No i przy okazji eclipsa masz juz narzedzie do zabawy z kodem. Poza eclipsem jest np. dla windy TurtoiseSVN |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
I takie pytanie co mi teraz do głowy wpadło - jakiś mądry sposób na używanie SVN z Visual Studio Microsoft'u?
pozdr. Łukasz |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja jeszcze wrócę do:
- Trunk - najnowasza wersja aplikacji, taka na której się po prostu pracuje - Tags - to są konkretne realizacje, wydałeś gdzieś jakąś i tu ją umieszczasz, przydatne jak chcesz mieć te same wersje w wielu miejscach. - Branches - to są jak już napisali rozgałęzienia, było podane PHP4/5 ale częściej jest do np. Propel 1.2, Prolepl 1.3, czyli wersje różniące się interfejsem. W branches się zmieniają, to tu wgrywasz łatki, dodajesz nową funkcjonalność (ale taką która nie zmienia aktualnie istniejącej wersji), czyli jak ktoś korzysta z Twojej aplikacji to z tego zasysa źródła, bo tu znajdzie poprawki, usprawnienia itp. w odróżnieniu od Trunk, jest pewne że jak ściągnie najnowszą wersję wszystko będzie działać po staremu, a może nawet lepiej. Co do Trac, to on umożliwia przeglądani źródeł, ale ważną rzeczą jest Ticket, jeśli nie najważniejszą, oraz wiki. Ogólnie tam umieszczasz dokumentacje projektu, właśnie po to jest wiki. A ticket, to po prostu rozpisujesz zadania co masz zrobić (task), co dodać/usprawnić (enhancement), czy też zgłaszane/znalezione błędy (defect). Dzięki Trac możesz przypisać takie zadanie danej grupie osób, przypisać do konkretnej "odbijać" je, jeśli coś jest nie tak, czy też dyskusja na ich temat, i to wszystko jest logowane, więc można sprawdzić co był i jak. Do tego dzięki Mylyn (dodatek do Eclipse) to zyskuje nowy wymiar, co prawda nie ma integracji z PDT ale ma z Subclipse czy Subversive... Co do Visual Studio http://ankhsvn.open.collab.net/ EDIT: A co do przenoszenia zmian z trunk do branch używa się najczęściej merge, do tagów jest komenda aby je utworzyć. Są jeszcze patch'e ale to już się nie rozpisuję. Ten post edytował Sedziwoj 6.08.2008, 16:40:08 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
@Sędziwoj: A jeśli mam aplikację i chcę jednocześnie rozwijać gałąź 1.x i 2.x to w branches je rozwijam i jak coś będzie gotowe to wrzucam do tags ? Czy może źle rozumuje. Czy mam jakoś w trunku naraz grzebać w tych dwóch gałęziach ?
Dzięki za link do tego pluginu - jestem bardziej niż wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A ten Mylyn to co on daje ? (wybacz, że pytam po prostu wolę od kogoś kto używa się dowiedzieć niż tylko przeczytać doc'a ) pozdrawiam, Łukasz |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Jak masz kilka brenchy 1.2, 1.3 to tagi tez masz do nich osobne 1.2.1, 1.2.2, 1.3.3 itd
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
To wiem ale zmiany wprowadzam normalnie w branches ? i dopiero kiedy zmiany w pełni działają wystawiam nową wersję do tags ... więc w sumie udostępniać publicznie tylko tags należy (chyba, że ktoś chce testować) mam racje ?
pozdr. Łukasz |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 28.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Pobaw sie tym: VisualSVN Server. To taki Krasnal. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mozesz wyklikac sobie wszystko, o czym wspominales (prawa do katalogow, uzytkownicy itd.).
- trunk - najbardziej aktualna, dzialajaca i sprawdzona wersja oprogramowania - tags - wersje produkcyjne - o tyle wazne, ze masz zawsze oznaczone to, co otrzymal klient - branches - wykorzystuje wtedy, gdy chce zrefaktoryzowac/ulepszyc jakis kawalek oprogramowania wiedzac, ze byc moze nie zdaze sie z tym uporac do wydania jakiejs wersji produkcyjnej; wowczas robie sobie galaz, w miedzyczasie dokonuje normalnie poprawek na trunku. jesli skoncze prace na galezi i efekt jest zadowalajacy, to robie merge do trunk (jesli wszystko ladnie dziala, to robie taga i oddaje klientowi). nastepnie usuwam galaz i tak w kolko. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@wolan
Zależy jak traktujesz branch, bo to zależy od konwencji. Bo można robić też tak że każda osoba ma swój i tylko merge na główne idzie. Ale widzę że Propel 1.3, jest tak prowadzony jak mówisz. Ogólnie sam szukałem kiedyś o tym jak prowadzić takie repozytoria informacji, ale nic ciekawego nie znalazłem. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hmm znalazłem coś takiego:
http://svnbook.red-bean.com/nightly/en/svn-book.html Wygląda na całkiem dobrze napisaną - w każdym bądź razie trochę się z niej już nauczyłem a teraz ją drukuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam, Łukasz |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 28.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
@Sedziwoj
Opisalem sposob, jaki mi najbardziej pasuje. O ile rozumiem supportowanie starszych wersji kodu w branch/tags w projektach, w ktorych to konieczne, to nie podoba mi sie przypadek, gdy kazdy programista w zespole dzierga gdzies sobie na boku na swojej galezi i pozniej wrzuca to do trunk. Szczegolnie, gdy jest to ktos malo doswiadczony. Lepiej miec wszystko w trunk, aby moc w miare wczesnie reagowac na zmiany kodu zrodlowego (chwalic rowniez!). Rowniez nalezy zalozyc, ze commity sa robione regularnie. Zupelnie nie wyobrazam sobie pracy, gdy ktos trzyma kod w swojej galezi przez kilka tygodni (!). Dodatkowo mozna w latwy sposob uzyc np. dyscyplinujacego Scmbug (integrowalem nim ostatnio bugzille i wlasnie svna), jakis build server itd. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
A właśnie pytanie - nad projektem pracuje X osób jak często według Was powinny commity tego co zrobiły dawać ?
Czym jest tem scmbug ? Czy trac nie pełni takiej samej roli ? pozdr. Łukasz Ten post edytował Kocurro 6.08.2008, 22:03:44 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
A właśnie pytanie - nad projektem pracuje X osób jak często według Was powinny commity tego co zrobiły dawać ? Czym jest tem scmbug ? Czy trac nie pełni takiej samej roli ? pozdr. Łukasz Ja mam taką zasadę - jedna KONKRETNA (czyli nie dwie linijki, a powiedzmy 50 zmienionych, czy 300) zmiana - jeden commit. Staram się nigdy nie pakować zmian dotyczących kilku niezwiązanych ze sobą rzeczy do jednego commita. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Czyli:
- poprawiam buga - commit - dodaję małą funkcję - commit - dodaję część dużej funkcji - commit A więc - rozpisuję sobie co mam zrobić na listę todo, staram się rozpisać w miarę na małe kawałki a potem po kolei robię i po każdym wykonanym (lub w trakcie jeśli jest duży a jego fragment zrobiłem) commit - czy dobrze myślę ? pozdrawiam, Łukasz |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 28.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
@Kocurro
Wg mnie programista w zespole powinien robic commita wowczas, gdy poprawil _calego_ buga lub dodal jakis _caly_ feature. Czesto spotykam sie z tym, ze programista robi commita, jak idzie do domu (nie sprawdzi, czy to co zrobil do tej pory dziala). Na szczescie nie w moim zespole.(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jesli chodzi o Scmbuga. Sluzy on do integracji systemow zglaszania bledow z systemem kontroli wersji. Glowna zaleta takiego rozwiazania jest fakt, iz do numerku bledu masz dostep z poziomu logu commita, a z poziomu bledu masz dostep do listy plikow, ktore poprawil programista. Dodatkowo mozna wymusic, aby programista dodawal komentarze w logu (z wlasnego doswiadczenia wiem, ze to niezwykle trudno przychodzi), nie poprawial cudzych bledow, zachowywal cykl zycia bledu, mozna narzucic nazewnictwo branchy i tagow itd. Wiecej znajdziesz w dokumentacji. Trac to jest wlasnie system zglaszania bledow. Scmbuga uzywam z Subversion i Bugzilla. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 07:38 |