Jak opravovat kód v CVS
Nové funkce jsou vkládány do větve HEAD. Opravy zdrojových kódu (bug fixes) jsou vkládány do větve MOODLE_XX_STABLE, kde XX je číslo verze. Užitečné je udržovat si u sebe dva vývojové stromy - jeden pro HEAD, druhý pro STABLE - pro každou verzi, na které pracujete.
Příklad překlopení pracovního adresáře na stabilní vývojovou větev:
cvs -q update -dP -r MOODLE_19_STABLE
Příklad překlopení pracovního adresáře na hlavní (nestabilní) vývojovou větev (HEAD):
cvs -q update -dPA
Poté, co provedete opravu kódu ve STABLE (commit), sloučíte (merge) opravu do HEAD pomocí značky MOODLE_XX_MERGED. Přejděte do adresáře s HEAD verzí a aktualizujte (update) všechny změny opraveného souboru file.php, ke kterým v něm došlo od posledního sloučení:
cvs -q update -kk -j MOODLE_19_MERGED -j MOODLE_19_STABLE file.php
Poté zašlete takto opravený soubor zpět do hlavní vývojové větve:
cvs commit file.php
Nyní je potřeba označit novou revizi souboru jako sloučenou. To se provádí pomocí již zmíněné značky MOODLE_XX_MERGED. Přejděte zpět do adresáře se STABLE větví a zadejte:
cvs tag -F MOODLE_19_MERGED file.php
Parametr -F znamená „Posuň značku, pokud již existuje.“ Toto posouvání je důležité!
Celý proces je znázorněn na následujícím diagramu:
/------------------------M------S 1.9 větev >==================================H kmen
S = poslední verze v dané větvi M = bod, kdy naposledy došlo ke sloučení do HEAD H = poslední verze hlavní výojové větve HEAD
Výše uvedeným příkazem
cvs -q update -kk -j MOODLE_19_MERGED -j MOODLE_19_STABLE file.php
přidáváte všechny změny provedené mezi body M a S do bodu H, takže jej můžete commitnout zpět. Dalším uvedeným příkazem
cvs tag -F MOODLE_19_MERGED file.php
posunete značku M na pozici S, takže nová situace vypadá takto:
/-------------------------------MS 1.6 větev >==================================H kmen
Další slučování oprav v budoucnu se tím pádem nebude snažit sloučit vámi provedené změny znovu.