Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Większe projekty - SVN, workflow
Forum PHP.pl > Forum > PHP
tomim
Witam !

Pracuje aktualnie w pewnym zespole ludzi zajmujących się budową stronek www.
Ja zajmuję się tylko PHP. Ostatnio projekty stają się coraz większe i tu zaczynają się moje problemy. Chodzi mi tu o kwestie pracy zespołowej nad kodem.
Dotychczas pracowałem w eclipsie (PDT), a w synchronizacji kodu pomagał mi genialny programik – beyond compare. Marzy mi się jednak jakieś bardziej profesjonalne podejście do sprawy synchronizacji mojej pracy na kompie z serwerami testowymi, a następnie serwerów testowych z produkcyjnymi (beyond compare umożliwia synchro między dwoma FTPami – piękna sprawa).

Ostatnio zacząłem się interesować systemem kontroli wersji – SVN.
Trochę o tym poczytałem, ale kilka spraw nie daje mi spokoju.

Nie rozumiem dlaczego jeśli osoba odpowiedzialna za np. CSS'a zmieni jakiś detal to moje pliki PHP maja również zmienić swoją rewizje.

Generalnie nie bardzo rozumiem jak miałbym debugować kod, jeśli każda zmiana wiąże się z nową rewizją. Każdy z nas miał chyba przypadek tropienia głupiego błędu przez dłuższą chwilę :) czy to oznacza ze „wyprodukowałbym” masę niedziałających rewizji ?! (bo jak rozumiem – każda zmiana kodu to nowa rewizja – trzeba dać commit)

Myślałem o postawieniu na kompie lokalnie takiego środowiska jak jest na serwerze na którym kod ma pracować. Mógłbym wtedy debugować kod u siebie i dopiero działającą wersję wgrać do repozytorium. Jednak po chwili doszedłem do wniosku, że nie uda się zainstalować takiego środowiska każdej osobie w zespole, w szczególności, że każdy pracuje pod innym systemem (Win, MacOSX, Linux). Do tego często i gęsto korzystamy z pythona, mod_rewrita – a tu co system to inaczej kod działa :). Jednym punktem wspólnym jest Eclipse (PDT).
Generalnie nie chcę przenosić środowiska programistycznego na lokalny sprzęt – wydaje mi się, że w grę wchodzi tylko praca na plikach które są na serwerze.

Pytania:
- Jak Wy radzicie sobie z większymi projektami ?
- Jak korzystać z SVN'a (lub z czegoś innego) w projektach PHP – jakie są Wasze doświadczenia ?
- Generalnie będę wdzięczny za wszelkie sugestie – jak prowadzić większy projekt i nie utonąć w dziesiątkach tysięcy rewizji ?

Z góry piękne dzięki za odpowiedzi !,
Pozdrawiam !
devnul
rewizja dotyczy tylko zmienianych plików (co za tym idzie cały projetk dostaje także numer ostatniego commita)
tomim
Czyli jeśli 10 razy zmienałbym jakiś plik (debugując go) to stworzę 10 niedziałających rewizji całego projektu ?
Czy te niedziałające rewizje da się jakoś usunąć ?
nrm
przeciez nikt ci nie karze commitować co 5 sekund winksmiley.jpg
devnul
dokładnie - jak wyżej kolega napisał. Tworzysz coś - testujesz na lokalnym środowisku - działa? ok więc dopiero wtedy sprawdzam na serwerze produkcyjnym.
dr_bonzo
tomim: kodowanie, commit, update na serwerze i sprawdzenie wynikow co 10sekund to masakra, spotkalem sie z takim rozwiazaniem (tzn commit twal minute, po czym automatycznie caly system sie wyciagal z repo (niestety nie przez update), a dolicz do tego innych commitujacych userow).
po prostu kazdy user MUSI miec system uruchomiony u siebie.

W SVNie to cale repozytorium ma wersje: zmienisz 1 plik, commit to zmieniles przeciez caly projekt, wiec cale repo zmienia rewizje (posrednio wszystkie innym plikom tez zmienia sie wersja)

A do repozytorium POWINNO sie (az i tylko powinno) wrzucac dzialajaca wersje -> patrz pierwszy akapit, kodujesz u siebie, dziala -> commit, no i nie musisz kazdej liijki z osobna commitowac, tylko po zakodowaniu jakiejs funkcjonalnosci, poprawieniu 1go buga, zmianach w ulozeniu plikow itp

przecicez apache, php sa takie same pod wszystkie systemy, wystarczy okreslic ktorej wersji uzywacie i kazdy ja sobie instaluje
tomim
Dzięki piękne za dotychczasowe informacje !

Rozumiem już, że commita robie tylko kiedy mam już wersję działającego kodu w środowisku lokalnym.
Pozostaje gównie kwestia spójności baz danych u programistów.

Powiedzmy, że dodałem jakąś funkcjonalność która korzysta z jakiejś tabeli którą u siebie w bazie utworzyłem.
Robie commita, kod leci do repozytorium, poprawiam bazę na serwerze testowym.
Koniec końców - u mnie działa, na serwerze testowym (repozytorium) działa, ale jeśli ktoś z innych programistów zrobi update i zassie kod z repozytorium, to może się okazać, że kod mu się wykrzaczy - bo nie zrobił synchro swojej lokalnej bazy z bazą na teście.

Zdaje sobie sprawę z tego, że można w konfigu kodu który mam lokalnie wskazać na bazę testową, zamiast na lokalną.
Obawiam się jednak, że wykonywanie 20-40 zapytań przy każdorazowym odpaleniu stronki na lokalu zaowocuje bardzo długim czasem "renderingu" stronki (przyjmując, że mój komputer jest w polsce, a baza w niemczech/holandii/usa).

Pytanie:
Czy istnieje jakaś zautomatyzowana metoda zarządzania zmianami w bazie (głównie jej strukturze) - taki "SVN do MySQL'a" ?
devnul
chyba tylko replikacja - ale to się raczej samych danych tyczy niż struktury
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.