Autor Wątek: Programowanie grupowe - strona techniczna  (Przeczytany 5198 razy)

Offline dsk

  • Użytkownik

# Lipiec 06, 2006, 20:18:10
Hej,

Byłbym wdzieczny, jeśli ktos kto ma już niezłe doświadczenie w programowaniu grupowym, opisał to zagadnienie od strony technicznej.

Tzn. jak przebiega taka praca, jakich programow sie uzywa (CVS, SVN, SS - z tego co wiem) i ogolnie jak tego typu oprogramowaniem się posługiwać (konfiguracja itp.)

Moze inni forumowicze ocenia ten pomysł?

Będe wdzieczny, pozdrawiam
/dsk

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Goliatus

  • Użytkownik
    • Warsztat - tworzenie gier

# Lipiec 07, 2006, 15:33:30
g[R]eK podczas pierwszej konferencji w Siedlcach miał o tym referat. Może coś się zachowało?

Offline counterClockWise

  • Użytkownik

# Lipiec 07, 2006, 22:14:33
Ja skromnie mogę tylko powiedzieć, że zawsze używałem Subversion i jakoś wolę go od CVS.

Offline Koshmaar

  • Użytkownik
    • Homepage

# Lipiec 08, 2006, 03:35:30
Cytuj
g[R]eK podczas pierwszej konferencji w Siedlcach miał o tym referat. Może coś się zachowało?

Ja u siebie znalazłem, i pozwolę sobie zachostować gdyż było to udostępnione do obiegu przez orgranizatorów, dodatkowo nie znalazłem tego na stronie IGK.

http://student.agh.edu.pl/~koshmaar/shared/TGK%20I%20-%20referaty.zip

Cytuj
Ja skromnie mogę tylko powiedzieć, że zawsze używałem Subversion i jakoś wolę go od CVS.

A ja powiem że używałem i tego i tego, przez co mogę z czystym sercem powiedzieć że SVN > CVS :-)


Poza tym, dsk, polecam poguglować i powikipediować, artykułów o tym jest dosyć dużo w sieci.

Offline dsk

  • Użytkownik

# Lipiec 09, 2006, 11:11:11
Cytuj
g[R]eK podczas pierwszej konferencji w Siedlcach miał o tym referat. Może coś się zachowało?

Ja u siebie znalazłem, i pozwolę sobie zachostować gdyż było to udostępnione do obiegu przez orgranizatorów, dodatkowo nie znalazłem tego na stronie IGK.

http://student.agh.edu.pl/~koshmaar/shared/TGK%20I%20-%20referaty.zip

Cytuj
Ja skromnie mogę tylko powiedzieć, że zawsze używałem Subversion i jakoś wolę go od CVS.

A ja powiem że używałem i tego i tego, przez co mogę z czystym sercem powiedzieć że SVN > CVS :-)


Poza tym, dsk, polecam poguglować i powikipediować, artykułów o tym jest dosyć dużo w sieci.

dzieki wielkie za link :)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Lipiec 16, 2006, 22:13:28
Nie mam w tym bardzo dużego doświadczenia, ale postaram się coś napisać.

Narzędzia do wspólnej pracy nad kodem to m.in. CVS, SVN (inaczej Subversion), Visual SourceSafe, Microsoft Team System. Ja znam i używam SVN. Jak się stawia serwer to nie wiem - miałem już postawiony, a żeby używać lokalnie (repozytorium jest w plikach na własnym dysku) to nie trzeba żadnego specjalnego serwera instalować.

Co do klienta: na Linuksie masz konsolowe polecenie svn (może jest coś lepszego, nie wiem), na Windowsie to samo plus RapidSVN (zwykły okienkowy klient), albo TortoiseSVN (integruje się z shellem Windows, bardzo wygodny - polecam). Oczywiście cały ten soft jest za darmo.

Filozofia używania jest następująca: Na serwerze jest tzw. repozytorium. Jest to baza danych, w której trzymana jest aktualna wersja kodu projektu (czyli struktura plików i katalogów wpakowana do jakiegoś jego własnego VFS) plus, co ważne, wszystkie poprzednie wersje tego kodu, każdego pliku z osobna (wbrew pozorom to nie zajmuje aż tak dużo, bo pamiętane są jedynie różnice).

Każdy user pobiera sobie zawartość repozytorium albo jakiegoś jego katalogu na swój dysk (CheckOut). Ma to u siebie. Co jakiś czas robi takie czynności: Update, czyli uaktualnia swoją wersję z bieżącą wersją na serwerze. Potem sobie kodzi, czyli coś tam zmienia, dodaje, usuwa. Potem robi Commit, czyli wprowadza te zmiany na serwer. Ważne jest też pojęcie rewizji, czyli pewnej wersji projektu, stanu jego plików w pewnym momencie czasu w historii. Do tego dochodzi temat branchingu (odgałęzienia), tagowania (zaznaczania jakiejś rewizji) i inne. Jeśli kilka osób zmodyfikuje ten sam plik w tym samym czasie, ale w różnych linijkach, to SVN automatycznie złączy zmiany. Jeśli w tym samych, to powstaje konflikt i ostatni commitujący musi go ręcznie rozwiązać.

Co do używanych protokołów, to o ile pamiętam SVN potrafi pracować zarówno przez zwykły HTTP, jak i w swoim własnym protokole.

To by było tak w skrócie, w uproszczeniu. Jeśli napisałem jakąś bzdurę to mnie poprawcie.

Offline TeMPOraL

  • Użytkownik
    • devBlog

# Lipiec 16, 2006, 22:48:31
. Jeśli kilka osób zmodyfikuje ten sam plik w tym samym czasie, ale w różnych linijkach, to SVN automatycznie złączy zmiany.
To wbrew pozorom nie jest taka błahostka, bo obie zmiany mogą być ze sobą kompletnie niekompatybilne, a nawet sobie przeciwdziałać. Tu widzę małą słabość tego rozwiązania, ale jak się domyślam to pokonuje się ją poprzez porządek i zorganizowanie w teamie ;). Tak? Czy jakieś bzdury piszę? :)

Offline Aklimx

  • Użytkownik
    • NeHe PL::Index

# Lipiec 16, 2006, 23:03:36
IMHO w teamie powinno być tak, że każdy rozwija jakiś swój moduł a interfejsy dostępu do poszczególnych są od początku określone. Wtedy załoga nie wchodzi sobie w paradę. Gdyby jednak zaszła taka potrzeba dodałbym bugtrackera, zeby zapobiegać takim sytuacjom. No bo wyobraźcie sobie, że pracujecie nad jakimś modułem i nagle ktoś wam podmienia kawałek waszego kodu - IMHVO czysty bezsens :p

Offline TeMPOraL

  • Użytkownik
    • devBlog

# Lipiec 16, 2006, 23:06:47
Dlatego zwróciłem uwagę na to jedno zdanie w wypowiedzi Regedit'a - bo takie narzędzie ma moc, ale wymaga też odpowiedzialności przy korzystaniu z niego. Aklimx, ja sobie nie wyobrażam, żeby team myślący o poważnym projekcie robił inaczej, niż na ściśle określonych interfejsach ( preferowane interfejsy w rozumieniu C++ ;), acz logiczne też ujdą :) )

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Lipiec 17, 2006, 05:51:46
Oczywiście że tak, innego wyjścia nie ma - żaden program nie będzie myślał i organizował pracy za programistów, a praca zespołowa to nie tylko wspólna edycja jednego kodu (te narzędzia służą właśnie do tego), ale i komunikacja, podział zadań, zarządzanie itd. (ale od tego są już inne narzędzia, na przykład Gadu-Gadu :)).

Natomiast bardzo ważny jest w tym komfort, że nic nigdy nie zginie i kiedy ktoś coś sknoci, zawsze można powrócić do poprzedniej wersji kodu danego pliku czy całego projektu albo przynajmniej do niej zajrzeć.

Offline dsk

  • Użytkownik

# Lipiec 17, 2006, 18:33:35
Dzieki wielkie za informacje :)

Offline fofoo

  • Użytkownik
    • WebLog


Offline Smetana

  • Użytkownik

# Lipiec 24, 2006, 21:44:41
Cytuj
Jeśli kilka osób zmodyfikuje ten sam plik w tym samym czasie, ale w różnych linijkach, to SVN automatycznie złączy zmiany.
A według mojej wiedzy to właśnie zablokuje taką zmianę :/.

Offline counterClockWise

  • Użytkownik

# Lipiec 24, 2006, 22:10:58
Cytuj
Jeśli kilka osób zmodyfikuje ten sam plik w tym samym czasie, ale w różnych linijkach, to SVN automatycznie złączy zmiany.
A według mojej wiedzy to właśnie zablokuje taką zmianę :/.

Oj to zależy czy uda mu się zmergować czy nie.
Mnie się w 85-90% zdarzało, że SVN potrafił z suckesem zmergować, a jeżeli mu się nie uda to ręcznie trzeba zedytować konflikt, potem resolve i jazda :)

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Lipiec 25, 2006, 07:58:12
Tak działa SVN, że stara się łączyć zmiany, to jest jeden z dwóch sposobów działania systemów kontroli wersji. Ten drugi to właśnie blokowanie plików.