Pokročilé možnosti CVS v linuxu

Cervisia

13.02.2006

http://cervisia.kde.org/
Grafický program pro práci s cvs, který mi v tuto chvíli nejvíce vyhovuje.

Vytvoření cvs skladu

Repository->Create...
a zadáme cestu k našemu projektu
/home/koci/work/MyProj

Import projektu

Repository->Import...
nastavíme
Repository: /home/koci/work/CVSROOT/
Module: MyProj
Working folder: /home/koci/work/MyProj
Vendor tag: myproj-1-0-0-branch
Release tag: myproj-1-0-0-tag
Comment: start

Pokud se projekt správně importnul, smažeme projekt abychom zamezily kolizi při checkoutu.
Checkout nám projekt znovu vytvoří z importlého skladu.

Checkout projektu

Repository->Checkout...
nastavíme
Repository: /home/koci/work/CVSROOT/
Module: MyProj
Branch tag: myproj-1-0-0-branch
Working folder: /home/koci/work/

Zobrazení projektu

File->Open Sandbox...
a zadáme cestu k našemu projektu
/home/koci/work/MyProj
Můžeme si zobrazit u každého souboru log, ve kterém se graficky znázorní všechny změny, branche a tagy.
View->Browse log...

Update, commit, add, delete souboru

Vše se provádí jednoduše přes tlačítka

Práce s branchi a tagy

Po checkoutu se nacházíme v branchi
myproj-1-0-0-branch
Zkusíme změnit nějaký soubor a commitnout. Tím vznikne nová cvs verze 1.1.1.2
Nyní zkusíme vytvořit novou branch
myproj-1-0-1-branch
a převést verzi 1-0-0 na verzi 1-0-1
Provedeme to takto:
  • 1) Updatneme do základní HEAD verze
    Advanced-> Update to HEAD
    tím dostaneme cvs verzi 1.1
  • 2) Převedeme verzi 1-0-0 do HEAD verze
    Advanced->Merge...
    zadáme
    myproj-1-0-0-branch
  • 3) Opravíme případné kolize verzí a commitnem. Tím se vytvoří nová HEAD verze.
  • 4) Vytvoříme novou branch
    Advanced->Tag/Branch...
    Zaškrtneme
    Create branch with this tag
    a zadáme jméno nové branche
    myproj-1-0-1-branch
  • 5) Vlezeme do vytvořené branche 1-0-1
    Advanced->Update to Tag/Date...
    a zadáme
    Update to branch: myproj-1-0-1-branch
  • 6) Vytvoříme nový tag
    Advanced->Tag/Branch...
    Nic nebudeme zaškrtávat a zadáme jméno nového tagu
    myproj-1-0-1-tag

Jaký užitek nám vlastně přináší práce s branchi a tagy?

Máme přehled o všech verzích projektu a do každé verze se můžeme vrátit. Pokud updatneme tag určité verze (např. myproj-1-0-1-tag), dostaneme stabilní verzi 1-0-1, což znamená přesnou verzi označenou tímto tagem. Pokud updatneme branch určité verze (např. myproj-1-0-1-branch), získáme vývojovou verzi 1-0-1, což znamená poslední cvs verzi v této branchi. Pokud pracuje na projektu více programátorů, tak každý programátor může pracovat ve vlastní branchi. Když má hotovo, převede (merge) svojí verzi do hlavní HEAD verze, opraví případné kolize verzí a commitne. Díky tomu každý programátor, který si updatne HEAD verzi získá automaticky nejaktuálnější verzi.

Rozdíly mezi verzemi.

Seznam celého cvs stromu zobrazíme
View->Browse Log...
Získáme přehled o všech verzích, můžeme sledovat popisky verzí, kdo kterou verzi vytvářel a rozdíly mezi verzemi.

Nastavení Cervisia pro práci na sourceforge.net

22.02.2006

Přidání repository

Repository->Repositories...->Add
a nastavíme (v mém případě)
Repository:  :ext:kwan-cz@cvs.sourceforge.net:/cvsroot/kengine
Use remote shell:  ssh
Zaškrtneme
Use different compression level
a zadáme hodnotu
4

Checkout repository

Repository->Checkout...
Repository:  :ext:kwan-cz@cvs.sourceforge.net:/cvsroot/kengine
Module:  K3dEngine_1_0
Working folder:  /media/sda7/koci/work
Pokud se nic nestane, provedeme checkout přes konzoli
export CVS_RSH=ssh
cd /media/sda7/koci/work
cvs -z3 -d:ext:kwan-cz@cvs.sourceforge.net:/cvsroot/kengine co -P K3dEngine_1_0

Otevření repository

File->Open Sandbox...
/home/koci/work/K3dEngine_1_0
Pokud nám vyhodí hlášku, že neexistuje cvs zinicializujem ho přes konzoli takto:
export CVSROOT=/home/koci/work/CVSROOT
cvs init

tím se vytvoří nový adresář
/home/koci/work/CVSROOT/CVSROOT
Po restartu cervisie by se mělo repository otevřít.

Nastavení

Je dobré si nastavit rekurzivní update a commit aby se tyto příkazy prováděly ve všech podadresářích
Settings->Update Recursively
Settings->Commit & Remove recursively



home / cvs


Valid XHTML 1.0 Transitional