# CVS para sa mga Debeloper ng Moodle

> Ang CVS ay ang Concurrent Versioning System, isang karaniwang paraan ng pamamahala ng source code para sa malalaking proyektong software. Itinatabi ng CVS ang lahat ng file kaya walang nawawala, at ang paggamit ng magkakaibang tao ay minamatyagan. May paraan din ito kung paaano magsasamasama ng code kapag dalawang tao o mahigit pa ang nagtatrabaho sa iisang file. Lahat ng code, at lahat ng bersiyon ay iniiimbak sa isang sentral na server (sa kasong ng Moodle, sa Sourceforge).

> Kung gusto mo lamang na i-download ang Moodle sa pamamagitan ng CVS para makapagpatakbo ng site, marahil ay hindi mo na kailangang basahin ang pahinang ito - sundan na lamang ang mas payak na instruksiyon ng CVS sa pahina para madownload ang Moodle.

> 1. Pagsali sa proyekto bilang developer
> 2. Mga Modyul ng CVS
> 3. Basic na Utos sa CVS
>    3.1. Paggamit ng CVS sa Unix
>    3.2. Paggamit ng CVS sa Windows
> 4. Paggamit ng mga Branches
>    4.1. Pagdebelop ng Trunk
>    4.2. Mga branch na stable para sa bawat release
>    4.3. Branch ng mga katangian para sa malalaking pagbabago

> ## 1. Pagsali sa proyekto bilang developer

> > Kung inalok ka ng CVS write access (karapatang magsulat) para matulungan kaming idebelop at imentina ang Moodle! Ikinagagalak naming makasama ka!

> > Para makapagsulat ka ng mga pagbabago sa CVS archive ng Moodle, kailangan ay may account ka muna sa Sourceforge. (libre na, madali pa ang rehistrasyon). Para sa mga halimbawa na nasa pahinang ito, kunwari ang username mo ay usernameko at ang password mo ay passwordko. Basahing mabuti ang mga instruksiyon ng sourceforge para sa paglikha ng CVS home directory mo - isang bagay na kailangan mong gawin sa bawat bagong account para "magamit" ito sa CVS. Kailangan mo lamang gumamit ng ssh para makakonekta nang interaktibo sa cvs.sourceforge.net.

> > Kapag may Sourceforge account ka na, kontakin mo si Martin Dougiamas, para mabigyan ka niya ng karapatang magsulat sa ilang partikular na direktoryo ng Moodle.

> > Para hindi mo na kailangang magbigay ng passwordko tuwing nagpapatakbo ka ng CVS command, sundin ang direksiyon sa Sourceforge para sa paggamit ng authorized keys. Opsiyonal ang hakbang na ito, pero mapapadali nito ang paggamit mo ng CVS.

> > Kapag tapos na ito, mabibigyan ka na ng lahat ng permission na kailangan mo, kailangan mo na lamang iset-up ang makina mo at idownload ang mga kasalukuyang source upang makapagsimula ka nang butitingin ang mga ito.

> ## 2. Mga Modyul ng CVS

> > Sa CVS, ang salitang "module" ay tumutukoy sa magkakahiwalay na koleksiyon ng code. Sa Moodle, ang mga sumusunod na module ay nasa loob ng ating imbakan:

> > > moodle - ang punong Moodle source code

> > > contrib - ambag ng user at samu't-saring code na dinidibelop

> > > mysql - isang pasadyang phpMyAdmin na ipaplug sa Moodle para sa database admin

> > > windows-cron - isang maliit na pakete na ginagawang posible ang cron sa sistemang Windows

> > > docs - iba't-ibang ekstrang dokumentasyon na inambag ng user

> > Karamihan sa mga tao ay trinatrabaho ang mga kasalukuyang katangian ng moodle module, pero marami ring nag-aambag ng bagong ideya sa contrib na module. Kapag medyo nag-mature na ang code sa pook contrib, puwede na itong ilipat sa punong moodle na modyul.

> ## 3. Basic na Utos sa CVS

> > ### 3.1 Paggamit ng CVS sa Unix

> > > Ginagamit ng Sourceforge CVS ang ssh bilang transport layer para sa seguridad, kaya't kailangan mong iset ang isang CVS_RSH environment variable sa inyong Unix shell. Pinakamaiging ilagay ang mga utos na ito sa .bashrc o .cshrc para hindi mo na ito kailanganing itype palagi:

> > > setenv CVS_RSH ssh (for csh, tcsh etc)
> > > export CVS_RSH=ssh (for sh, bash etc)

> > > Tapos, icheck-out mo ang pinakabagong dinidebelop na bersiyon ng Moodle gamit ito (lahat ay nasa isang linya):

> > > cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co moodle

> > > Pareho rin ang utos para sa iba pang CVS modyul:

> > > cvs -z3 -d:ext:myusername@cvs.sourceforge.net:/cvsroot/moodle co contrib

> > > Huwag mong tangkaing patakbuhin ang unang CVS command na ito sa isang nageexist nang moodle directory - magsimula nang bagong direktoryo.

> > > Tandaan na hihilingan ka na ibigay ang passwordko para sa bawat command kung hindi mo isinet-up ang authorized keys.

> > > Ngayon, dapat ay may bago ka nang 'moodle' na direktoryo. Puwede mong baguhin ang pangalan nito o ilipat sa kung saan mo gusto. Pumasok ka sa direktoryong ito:

> > > cd moodle

> > > Lahat ng pinakabagong Moodle file ay dapat naroroon. Maaari mo nang baguhin ang mga file sa kopya mo. Upang maihambing ang mga file at direktoryo mo sa pangunahing CVS na kopya sa server gamitin ang cvs diff, eg:

> > > cvs diff -c config-dist.php
> > > cvs diff -c lang

> > > Upang makuha ang mga pinakabagong update mula sa server, gamitin ang:

> > > cvs update -dP

> > > Upang makopya ang mga bago mong file pabalik sa server, gawin ang ganito:

> > > cd lang/ca
> > > cvs commit

> > > Hihilingan ka na magdagdag ng ilang komento (depende sa default mong text editor) ... magdagdag ng makabuluhang komento at isara ang editor ... ipadadala na ang mga file sa Sourceforge at iistore na ito. Tapos na!

> > > Upang makatipid ng mas maraming oras, puwede kang maglagay ng mga default na argument sa file na tinatawag na .cvsrc sa iyong direktoryong home. Halimbawa, ang sa akin ay may ganito:

> > > diff -c
> > > update -dP

> > > Gamitin mo ang 'cvs help' para sa iba pang detalye ...

> > ### 3.2 Paggamit ng CVS sa Windows

> > > Una, kailangan mong mag-download ng ganap na bagong kopya ng Moodle gamit ang developer account mo.

> > 1. Kunin mo ang TortoiseCVS mula sa tortoisecvs.org at iinstol ito, pagkatapos ay magreboot.
> > 2. Humanap o lumikha ng bagong folder kung saan mo man gustong madownload ang Moodle.
> > 3. Iright-mouse-click mo ang folder na iyon at piliin ang "CVS Checkout" mula sa menu. May lalabas na dialog box.
> > 4. Kopyahin mo ang tekstong ito sa CVSROOT field (gamit ang sarili mong username!):

> >         :ext:myusername@cvs.sourceforge.net:/cvsroot/moodle

> > 5. Sa ilalim ng "Module" field, itype ang "moodle" para makuha ang pinakabagong dinidibelop na bersiyon ng Moodle, "contrib" para makuha ang direktoryo ng mga ambag, o "mysql" para makuha ang MySQL Admin module.
> > 6. Pindutin ang butong: "OK" at madadowload na ang lahat.

> > > Ipapakita ng isang dialog box ang lahat ng file na idinadownload, at pagkatapos ng ilang saglit ay may kumpletong kopya ka na ng Moodle. Pagkatapos ng unang checkout na ito, puwede ka nang kumuha ng mga pinakabagong inupdate na file mula sa CVS server:

> > 1. Iright-mouse-click ang Moodle folder mo (o anumang file) at piliin ang "CVS Update".
> > 2. Relaks ka lang at masdan ang pagscroll ng mga log. Itala ang mga conflict na mangyayari kung ang lokal na code mo ay may mga pagbabago na dikasundo ng pumapasok na bersiyon - kakailanganin mong i-edit ang mga file na ito at ayusin ang mga dipagkakasundo nang mano-mano.

> > > Matapos mamodify ang mga file (mapapansin mo na mula sa berde ay naging dilaw ang mga icon nito!), maaari mo nang icommit pabalik sa CVS server ang mga ito nang paganito:

> > 1. Iright-mouse-click ang Moodle folder mo (o anumang file) at piliin ang "CVS Commit...".
> > 2. Sa dialog box, magtype ng malinaw na deskripsiyon ng mga pagbabago na ikinomit mo.
> > 3. Iklik ang "OK". Ipadadala na ang mga pagbabago mo sa server.

> ## 4. Paggamit ng mga Branches (Sanga?)

> > Ipinapakita sa dayagram na ito kung paano nagsasanga ang modyul ng moodle sa iba't-ibang bersiyon kapag lumaon.

> > Para makita mo ang lahat ng kasalukuyang tag at branch (sanga) na makukuha, gamitin ang utos na sumusunod sa anumang lumang file (tulad ng index.php sa punong direktoryo ng moodle):

> > cvs status -v index.php

> > Ilang gabay sa paglalagay ng tag:

> > - Dapat ay palaging nasa malaking titik ang mga pangalan ng tag at branch (sanga).
> > - Dapat PALAGING lagyan ng mga tag at branch ang buong modyul (kabuuan ng Moodle). Huwag lagyan ng tag ang indibidwal na file o direktoryo.
> > - Hindi namin pinahihintulutan ang pagbabago ng pangalan ng mga tag dahil maaaring pinagbabatayan ito ng mga tao, kaya tiyakin mong tama ito sa unang pagkakataon!

> > ### 4.1 Pagdebelop ng trunk (katawan?)

> > > Ang Trunk ng CVS ay ang pangunahing dinidebelop na bersiyon ng Moodle. Sa CVS kilala rin ito sa tawag na HEAD, o default na branch.

> > > Tinatangka ng mga debeloper ng Moodle na panatiliing stable ito, hangga't maaari, subali't dahil naglalaman ito ng bagong code, malamang ay may mga bug at maliliit na parteng di-stable .

> > > Panapanahon ay nagpapasiya kaming may sapat nang katangian ang produkto para gumawa ng isang release (lathala?). Sa panahong ito, ang trunk ay nilalagyan ng tag na MOODLE_XX_BETA tag (sakaling naisin namin na bumalik sa puntong iyon) at gagawa ng bagong branch para sa release, na tinatawag na MOODLE_XX_STABLE.

> > > Malalathala rin ng paketeng Beta sa panahong ito - para ito sa mga sumusubok ng produkto na hindi gumagamit ng CVS nguni't nagnanais na subukin ang pinakabagong katangian at mag-ulat ng mga bug.

> > ### 4.2 Mga branche na stable para sa bawat release

> > > Kapag nabuo na ang stable branch na MOODLE_XX_STABLE ay pansamantalang magsasanga ang pagdedebelop sa dalawang agos. May ilang taong magpapatuloy ng pagtrabaho sa mga bagong katangian ng trunk para sa susunod na release, ngunit ang karamihang debeloper ay dapat bigyang diin ang paggamit ng kasalukuyang STABLE na branch at pagsasaayos ng mga bug nitong matutuklasan.

> > > Maaari mong palitan ang lokal mong kopya ng Moodle ng STABLE na bersiyon sa pamamagitan ng sumusunod na utos sa Unix mula sa root na direktoryo:

> > > cvs update -dP -r MOODLE_XX_STABLE

> > > Pagkatapos nito, lahat ng utos na inilarawan sa itaas ay puwedeng gamitin sa stable na bersiyon. Upang makabalik sa trunk na bersiyon iutos lamang ang:

> > > cvs update -dPA

> > > Sa mga kliyenteng kompyuter na Windows, makakakita ka ng menu kung saan mo pipiliin ang branch.

> > > Kapag ang bagong STABLE branch ay talagang matatag na, maaari nang maglabas ng release. Lilikha ng mga pakete para sa pamamahagi at ang branch ay lalagyan ng tag (ni Martin) na: MOODLE_XXX

> > > Panapanahon, ang mga solusyon sa bug para sa STABLE branch ay dapat isanib sa trunk upang magamit ang mga ito sa mga bersiyon ng Moodle sa hinaharap. Imementina ang isang floating tag na may pangalang MOODLE_XX_MERGED upang masubaybayan ang huling pagsasanib. Ang proseso para sa ganitong pagsasanib ay ang sumusunod:

> > > 1. Kunin ang pinakabagong bersiyon ng trunk.
> > >    cvs update -dPA
> > > 2. Isanib ang lahat ng nasa branch na huling sinaniban, sa iyong bersiyon ng trunk
> > >    cvs update -kk -j MOODLE_13_MERGED -j MOODLE_13_STABLE
> > > 3. Matyagang mabuti ang mga update log kung may mga dipagkakasundo, at ayusin ang bawat file na makita ninyong may dipagkakasundo
> > > 4. Icheck pabalik sa CVS trunk version ang pinagsanib na kopya mo
> > >    cvs commit
> > > 5. Balikan ang bersiyon ng branch
> > >    cvs update -dPr MOODLE_13_STABLE
> > > 6. Baguhin ang floating merge tag upang maulit ang prosesong ito sa susunod na pagkakataon
> > >    cvs tag -RF MOODLE_13_MERGED

> > > Bilang panghuli, ang halaga ng $version sa lahat ng mga Moodle version.php na file sa loob ng stable na branch ay hindi dapat baguhin hangga't maaari (maliban sa huling numero kung kinakailangan). Ito'y dahil baka dimapansin ng isang taong naga-update mula sa isang napaka-stable na bersiyon tungo sa susunod na napaka-stable na bersiyon, ang mga upgrade sa database na ginawa sa trunk.

> > ### 4.3 Mga branch ng katangian para sa malalaking pagbabago

> > > Minsan, may napakalaking katangian na kailangang itsek-in, kaya't maaaring magtulong-tulong ang ilang tao dito, subali't napaka-unstable nito para maisama sa pangunahing dinedebelop na trunk.

> > > Sa mga ganitong pagkakataon, maaaring lumikha ng panandaliang panahon na branch upang pagtrabahuhan ng katangian, at tapos ay isanib ito pabalik sa punong trunk sa pinakamadaling panahon. Halimbawa ang MOODLE_14_WIDGET branch na makikita sa dayagram sa itaas.

> > > Kung nais mo itong gawin sa inyong bagong WIDGET na katangian, sundin ang mga sumusunod na hakbang:

> > > 1. Talakayin ito sa iba pang debeloper upang matiyak na kailangan nga ito!
> > > 2. Gumawa ng bagong tag sa trunk (para sa kabuuang moodle ) na may pangalang MOODLE_XX_WIDGET_PRE
> > >    cvs tag -R MOODLE_XX_WIDGET_PRE
> > > 3. Likhain ang branch mo na may pangalang MOODLE_XX_WIDGET
> > >    cvs tag -Rb MOODLE_XX_WIDGET
> > > 4. Magtrabaho sa branch na ito hanggang maging sapat ang stability ng katangian. Icommit kung kinakailangan.
> > >    cvs commit
> > > 5. Kapag handa na, isanib ang buong branch sa trunk, ayusin ang mga dipagkakasundo, i-commit ito sa trunk at abandonahin na ang branch.
> > >    cvs update -dPA
> > >    cvs update -kk -j MOODLE_XX_WIDGET
> > >    cvs commit

> Good luck, mag-ingat at magpakasaya sana kayo!

Dokumentasyon ng Moodle

Version: $Id$