14 listopada, zmiany na CVS

0

Uzgodnilismy z Embracedem pewne zmiany na CVS. Otoz 14 listopada zostanie wydana wersja 0.9.1-rc2. W tym momencie zostanie udostepniona baza danych z serwera oraz zrodla Coyote 0.9.1-rc2 do sciagniecia.

W tym momnecie na CVS zostanie stworzona odrebna gałąź deweloperska. Galaz zostanie prawdopodobnie nazwana coyote-0-9-1 i bedzie to galaz zawierajaca kod zrodlowy projektu w wersji stable. Taki kod oczywiscie bedzie mozna nadal rozwijac, a poprawki umieszczac od razu na FTP.

Jak mowie - to bedzie odrebna galaz dla kodu stabilnego. Glowny nurt to jednak pliki niestabilne, ktore niekoniecznie musza byc od razu umieszczone na FTP. Glowna galaz niestabilna bedzie zawierala kod z nowymi funkcjami, jeszcze nie testowanymi, ktorych nie mozna od razu umiescic na FTP. Wyglada to mniej wiecej tak (graf prezentujacy wersjonowanie jednego pliku, index.php):

  index.php, v.1.14 -------|
       |                  | 
       |           index.php, v.1.14.1
       |           index.php, v.1.14.2
       |
       |
  index.php, v.1.15 
       |
       |
  index.php, v.1.16

Teraz deweloperzy beda mogli jednoczesnie pracowac nad wersja niestabilna jak i poprawiac bledy w wersji stabilnej. Najprosciej zrobic to poprzez utworzenie dwoch folderow na kody zrodlowe Coyote. W jednym bylby kody niestabilne, a w drugim - stabilne. Teraz mozna latwo nanosic poprawki i wysylac poprawione pliki do odpowiedniej galezi.

Szczegoly zostana przedstawione wkrotce.

0

:0
A po grzyba tak mieszać ?!!

Czy obecna (przejrzysta) wersja CVS nie sprawdzała się? :|
FTP=CVS więc nie ma żadnego mieszania w plikach. Przy większych zmianach, które wymagają poprawek i testowania korzystało się z lokalnego Coyote i wsio było ok. Potem wrzuta na CVS, stamdąd na ftp i jeśli pojawiały się jakieś małe niedociągnięcia, to szybko je niwelowano.

I to wszystko na jednej gałęzi. Teraz komu się będzie chciało jedną zmianę wprowadzać w 2 plikach (szczególnie, że mają się różnić, więc to nie będzie tylko Copy&Paste).

Moim zdaniem to arcydziwna decyzja, której póki co nie rozumiem...

0

:0
A po grzyba tak mieszać ?!!

Chodzi o problemy z mod_rewrite

0

:0
A po grzyba tak mieszać ?!!

Chodzi o problemy z mod_rewrite

i nie tylko dlatego. Reszte powodow poznacie wkrotce, w jakims normalnym dokumencie.

[dopisane]
oto co udało mi się na razie wydumać (wersja nieskończona)
http://www.embraced.w.tkb.pl/coyote/branch.html

0

Mysle, ze to co najwazniejsze, zawarl w swoim dokumencie Emreaced. Ja tylko dopowiem pare rzeczy i zapropnuje strategie pracy. Otoz wydaje mi sie ze nadszedl czas na wydanie wersji 0.9.1-rc2. Mysle, ze w niedziele nalozymy tag coyote-0-9-1-rc2 na obecne zrodla. W tym momencie utworzymy takze osobna galaz coyote-0-9-2.

Wersja rc2 nadal bedzie na serwerze, na niej beda dokonywane jedynie poprawki bledow (nie bedziemy na niej dodawac nowych funkcji), a pozniej przeksztalcimy ja w 0.9.1-stable. Takie poprawki moga od razu wedrowac na FTP.

Nowe funkcje beda nanoszone na galaz 0.9.2, ale nie bedziemy od razu wcielac ich w zycie (tj. nie bedziemy takich plikow wysylac na FTP). Po zrealizowaniu wszystkich pozycji z TODO dotyczacych tej wersji mozna pokusic sie o wydanie 0.9.2-pre1 i dopiero w takiej wersji wyslac pliki na FTP do sprawdzenia jak projekt zachowuje sie w praktyce.

Dzialajmy w modelu iteracyjnym. Tj. pozniej mozna utworzyc galaz coyote-1-0 i realizowac TODO dla tej wersji i wprowadzac nowe funkcje. Wowczas 0.9.2 stanie sie galeznia stabilna i nie wprowadzamy juz do niej nowych funkcji lecz poprawiamy stare.

Wydaje mi sie ze zalety takiego rozwiazania przedstawil w swoim dokumencie Emreaced. Unikniemy w ten sposob powaznych bledow w nieprzetestowanych skryptach od razu wrzucanych na serwer FTP. Poprawi to takze prace w nowo dodawanych funkcjach.

0

Co prawda 14 jest dopiero jutro ale rc2 zostalo juz wydane (pliki sa na CVS) wiec pozwole sobie napisac krotka i szybka instrukcje obslugi CVS.

  1. Obecna wersja systemu to 0.9.1-rc2.
  2. Najnowszy tag nalozony na pliki na CVS nosi nazwe coyote-0-9-1-rc2.

Poniewaz pliki projektu Coyote oraz RoadRunner leza w tym samym repozytorium CVS, w glownym katalogu CVS znajduja sie dwa foldery:

  • coyote
  • roadrunner

Czyli pierwsza zmiana to zmiana nazwy katalogu z coyote-0-9-1 na coyote (po prostu ;)). Nie ma tez katalogu 4programmers.net - po prostu wszystki pliki znajduja sie w katalogu coyote (dla ulatwienia proponuje zajrzec na http://cvs.4programmers.net).

Teraz, aby sciagnac na swoj dysk wszystkie pliki z repozytorium (czyli zrodla projektu Coyote oraz RoadRunner) wystarczy wydac polecenie:

cvs checkout .

Ci ktorzy sa zainteresowani projektem Coyote lub RoadRunner moga wybrac ktore pliki chca sciagnac:

cvs checkout coyote

W takim wypadku na dysk zostana sciagniete pliki projektu Coyote.

Poniewaz lepiej i wygodniej jest korzystac z interfejsu graficznego proponuje uzyc jakiegos programu ktory stanowi nakladke graficzna na CVS (np. pod Windows bedzie to program WinCVS). Dalsze instrukcje beda dotyczyly obslugi CVS z poziomu progam WinCVS. Mysle, ze uzytkownicy korzystajacy z konsoli poradza sobie.

3) Pobieranie aktualnych plikow z CVS

Przede wszystkim nalezy przygotowac sobie katalog roboczy, do ktorego sciagniete zostana pliki projektu. W moim wypadku wyglada to tak: na dysku C: posiadam katalog usr w ktorym znajduje sie:

  • Apache (serwer HTTP)
  • php4
  • mysql
  • src (katalog glowny serwera)

W katalogu src posiadam foldery:

  • coyote (plik zrodlowe projektu Coyote)
  • roadrunner (pliki zrodlowe projektu RoadRunne)

W Apacheu mam ustawiony kilka wirtualnych hostow, ale aktualnie nie ma to znaczenia. Powiem tyle ze host 127.0.0.1 wskazuje na katalog coyote a 127.0.0.3 wskazuje na katalog roadrunner. Czyli po wpisaniu w przegladarce http://127.0.0.1 wyswietla mi sie zawartosc katalogu coyote. Tak wiec pliki z CVS mozna sciagnac do katalogu coyote i tym samym pod hostem 127.0.0.1 bedzie nam dzialal Coyote. Jak to zrobic?
W WinCVS:

a) z menu Create wybieramy Checkout module
b) w polu "Enter the module and name..." wpisuje coyote
c) w polu "Local folder..." wpisuje C:\usr\src
d) na zakladce "General" w polu "CVSROOT" wpisuje: [email protected]:/usr/cvs 1
d) na zakladce "Checkout options" w polu "By revision/tag..." podaje coyote-0-9-2-rc2 2
e) naciskam OK, pliki zostaja pobrane.

1 - dla anonimow bedzie to [email protected]:/usr/cvs lub [email protected]:/usr/cvs
2 - tylko w wypadku gdy chcesz pobrac zrodla w wersji 0.9.1-rc2.

Ja mam jednak nieco inaczej. Otoz, poniewaz na serwerze zostaly zalozone galezie (branch; czyt posty wyzej w sczegolnosci dokument Embreaceda) pliki z wersji 0.9.1-rc2 znajduja sie u mnie w katalogu C:\usr\src\coyote\stable tak wiec jezeli chce pracowac na wersji stabilnej wchodze poprzez adres http://127.0.0.1/stable. W folderze coyote mam takze katalog dev w ktorym znajduja sie wersje rozwojowe (dostep do nich uzyskam poprzez adres http://127.0.0.1/dev/).

Jak to zroblem? Pobralem zrodla do katalogu C:\usr\src\coyote, co spowodowalo iz CVS utworzyl kolejny folder coyote tak wiec zrodla bylyby pod adresem C:\usr\src\coyote\coyote. Nazwe folderu coyote zmienilem na stable i teraz mam kody pod katalogiem C:\usr\src\coyote\stable.

4) Pobieranie plikow z linii polecen

Krotki opis: jezeli chcemy pobrac zrodla w wersji 0.9.1-rc2 wpisujemy:

cvs checkout -r coyote-0-9-1-rc2 coyote

Jezeli chcemy pobrac aktualne zrodla:

cvs checkout coyote

To chyba tyle. Przypominam ze CVS via http://cvs.4programmers.net://cvs.4programmers.net.

  1. Galezie

Ponizszy rysunek prezentuje kolejne wersje przykladowego pliku - add_faq.php. Na ponizszym rysunku przedstawione zostaly miejsca w ktorych zostal nalozony tag oraz miejsce gdzie zostala nalozona galaz.

user image

Nas najbardziej interesuje ikona "coyote-0-9-2" ktora oznacza rozgalezienie. Od tego momentu wersje pliku beda rozgalezione. Istnieje mozliwosc kontynuowania starej linii 1.x lub tez wersji z osobnej galezi. W tym wypadku wersje z galezi rozwojowej coyote-0-9-2 beda wersjonowane 1.9.2.X (dla pliku add_faq.php).

Teraz podstawowa zasada: nowe funkcje do systemu wprowadzamy tylko w wersji rozwojowej. W starej galezi rc2 poprawiamy tylko stare bledy. W moim wypadku najprosciej trzymac na dysku obie wersji (stabilna oraz rozwojowa). Tak wiec posiadam katalogi stable oraz dev. Sposob pobierania wersji rozwojowej jest identyczny jak stabilnej (przedstawionej w tym poscie). Jedyna roznica to okreslenie galezi. Na zakladce "Checkout options" w polu "By revision/tag..." nalezy wpisac coyote-0-9-2.

1 użytkowników online, w tym zalogowanych: 0, gości: 1