Source Mage GNU/Linux a Perforce
K vývoji Source Mage GNU/Linux je v současné době používán systém Perforce (The Fast Software Configuration Management System). Ještě nedávno byl k vývoji používán také systém CVS (Concurrent Versions System). Každý vývojář se mohl svobodně rozhodnout, zda bude používat Perforce, nebo svobodnější CVS. Skripty, speciálně vytvořené pro tento účel, zabezpečovaly, že na webových stránkách umístěné grimoire i sorcery vždy obsahovaly změny provedené jak v Perforce, tak v CVS. Se vstupem správce CVS do dvorany slávy (tj. po jeho opuštění projektu) ale možnost využívaní CVS zanikla.
Někteří svobodomyslní vývojáři ale nesouhlasí s používáním proprietárního software k vývoji GPL software, a používání Perforce proto důrazně odmítají. Mezi vývojáři se diskutovalo také o tom, že by se k vývoji používal pouze systém CVS. S tím ale nesouhlasili zastánci Perforce. Zcela jistě by bylo mnohem jednodušší, kdyby všichni vývojáři používali stejný systém. Vývojářům svobodného software ale nelze nic přikazovat. Zvláště pokud nejsou za vývoj placeni. Právě naopak. Pokud vývojáři chtějí Perforce i CVS, mají je mít. K vývoji Source Mage GNU/Linux se proto bude opět používat Perforce i CVS.
Perforce
Perforce, produkt společnosti Perforce Software Inc., používá 100000 vývojářů v 2400 společnostech v 29 státech. Mezi spokojenézákazníky společnosti Perforce Software Inc. patří například Adobe Systems, Macromedia, NVIDIA, Palm, SGI, Sun Microsystems, Sybase a mnoho dalších.
Systém Perforce je používán i pro vývoj svobodného software, například POV-Ray nebo Perl.
Perforce je komerční software. Jeho cena je 750$ za uživatele za první rok a 150$ za uživatele následující roky. Samozřejmostí jsou množstevní slevy. Nad 1000 uživatelů je cena 450$ za uživatele za první rok.
Perforce software (Perforce Server – P4D, Perforce Command-Line Client – P4, …) je volně k dispozici. Všechny nabízené produkty, až na Perforce Server, jsou plně funkční. Perforce Server umožňuje práci pouze dvěma uživatelům a povoluje vytvořit pouze dva klienty (viz dále). Pro více uživatelů a klientů je nutné nainstalovat nezbytné licence.
Pro vývoj svobodného software lze získat licence zdarma.
Základy práce s Perforce
Práce s Perforce je velice snadná. Pro vývojáře Source Mage GNU/Linux slouží k seznámení se s Perforce stručná příručka PerforceQuickstart.
Uživatelský účet
Každý uživatel Perforce musí mít svůj vlastní účet. Neexistuje anonymní přístup. Lze vytvářet účty s právy pouze pro čtení. Pro tyto účty jsou ale také vytvářeny Perforce klienty. Perforce server si ve své databázi udržuje informace o tom, v jaké verzi jsou soubory u jednotlivých uživatelů. Aktualizace lokálních souborů je proto mnohem rychlejší než u CVS.
Proměnné prostředí
Po získání účtu je nutné Perforce klienta nakonfigurovat. Perforce klient (p4) musí vědět, ke kterému Perforce serveru se má připojit (proměnná prostředí P4PORT), pod jakým uživatelem (P4USER) a jaké heslo má použít (P4PASSWD).
export P4USER=lace export P4PASSWD=mypassword export P4PORT=our.perforce.server:5555 |
Heslo je zapsáno v otevřeném tvaru. Přes síť putuje pouze jeho MD5 otisk.
Spojení se serverem lze ověřit pomocí příkazu „p4 info“.
$ p4 info User name: lace Client name: myclient Client host: my.box.org Client root: /home/lace/SOURCEMAGE Current directory: /home/lace/SOURCEMAGE Client address: 10.20.30.40:5000 Server address: our.perforce.server:5555 Server root: /perforce/sgml/p4root Server date: 2003/07/30 17:31:01 +0100 BST Server version: P4D/LINUX24X86/2002.2/43337 (2003/04/07) Server license: Ladislav Hagara 100 users (expires 2004/05/22) |
Perforce klient
Perforce klient definuje, které části centrálního skladiště (repository) budou mapovány uživateli, tj. které podadresáře budou zkopírovány na jeho lokální disk.
Perforce klienta lze upravovat pomocí textového editoru. Ten je spuštěn příkazem „p4 client“. V zobrazeném formuláři jsou důležité řádky Root: (definuje umístění lokálních souborů) a View: (části centrálního skladiště mapující se do lokálních adresářů). Název Perforce klienta je uložen v proměnné P4CLIENT.
$ export P4CLIENT=myclient $ p4 client # Use 'p4 help client' to see more about client views and options. Client: myclient Update: 2003/07/24 15:17:09 Access: 2003/07/30 06:49:41 Owner: lace Host: my.box.org Description: Created by lace. Root: /home/lace/SOURCEMAGE Options: noallwrite noclobber nocompress locked nomodtime rmdir LineEnd: local View: //sgl/devel/grimoire/crypto/... //myclient/devel-crypto/... //sgl/devel/grimoire/graphics/... //myclient/devel-graphics/... //sgl/devel/grimoire/net/... //myclient/devel-net/... //sgl/devel/grimoire/kernels/... //myclient/devel-kernels/... |
Ukázka práce vývojáře Source Mage GNU/Linux
Poté, co jsem zjistil, že je k dispozici nová verze programu jnettop (program z českých luhů a hájů), rozhodl jsem se, že aktualizuji daný spell.
Ke stažení obsahu podadresářů definovaných pomocí „p4 client“ na lokální disk slouží příkaz „p4 sync“. Stejný příkaz slouží k aktualizaci již stažených souborů.
$ p4 sync File(s) up-to-date. |
Před editací souborů je nutné spustit příkaz „p4 edit“. Perforce serveru je tím sděleno, že dané soubory jsou právě editovány. Vývojáři, kteří by chtěli editovat stejné soubory, jsou na tuto skutečnost upozorněni. V editaci souborů jim to ale nebrání.
$ p4 edit devel-net/jnettop/DETAILS //sgl/devel/grimoire/net/jnettop/DETAILS#6 - opened for edit $ p4 edit devel-net/jnettop/HISTORY //sgl/devel/grimoire/net/jnettop/HISTORY#6 - opened for edit |
Soubory lze editovat libovolným editorem.
$ vi devel-net/jnettop/DETAILS $ vi devel-net/jnettop/HISTORY |
Po nainstalování a otestování nové verze lze použít příkaz „p4 submit“ k provedení změn v souborech na straně Perforce serveru. Po spuštění „p4 submit“ se otevírá textový editor s formulářem, ve kterém je nutné vyplnit část Description:. Bez zadání popisu nejsou změny provedeny. V části Files: se nachází seznam upravovaných souborů.
Change: new Client: myclient User: lace Status: new Description: jnettop ++ Files: //sgl/devel/grimoire/net/jnettop/DETAILS # edit //sgl/devel/grimoire/net/jnettop/HISTORY # edit |
Příkaz „p4 submit“ vypíše po úspěšné aktualizaci číslo změny (change). Perforce pracuje atomicky. Buď jsou provedeny změny ve všech upravovaných souborech, nebo v žádném.
$ p4 submit Change 16305 created with 2 open file(s). Submitting change 16305. Locking 2 files ... edit //sgl/devel/grimoire/net/jnettop/DETAILS#7 edit //sgl/devel/grimoire/net/jnettop/HISTORY#7 Change 16305 submitted. |
Popis změn lze vypsat příkazem „p4 describe“.
$ p4 describe 16305 Change 16305 by lace@myclient on 2003/07/31 11:04:39 jnettop ++ Affected files ... ... //sgl/devel/grimoire/net/jnettop/DETAILS#7 edit ... //sgl/devel/grimoire/net/jnettop/HISTORY#7 edit Differences ... ==== //sgl/devel/grimoire/net/jnettop/DETAILS#7 (xtext) ==== 2c2 < VERSION=0.8.1 --- >VERSION=0.9 6c6 >MD5[0]=ea2c33447ff32d9aee919e44656fa8b9 --- >MD5[0]=19356d5e016cf87bc22cb7e5b6824046 ==== //sgl/devel/grimoire/net/jnettop/HISTORY#7 (xtext) ==== 0a1,4 >2003-07-31 Ladislav Hagara <hgr@vabo.cz> > >updated to 0.9 > |
Grafické nadstavby
S Perforce lze samozřejmě pracovat i v grafickém módu. V operačních systémech Linux a Mac OS X lze použít Perforce Visual Client (P4V). V prostředí MS Windows lze používat Perforce Windows Client (P4Win). Uživatelé Perforce mají v oblibě webové rozhraní vytvářené programem Perforce Web Client (P4Web).
PS:
V srpnovém čísle časopisu Linux Magazine vyšel čtyřstránkový článek věnující se Perforce. Autor zde zmiňuje omezení CVS a na příkladech popisuje vlastnosti Perforce. Pokud máte o článek zájem, můžete si jej stáhnout ze stránek společnosti Perforce Software.