Source Mage GNU/Linux (6) alias Výlet do říše verzí (5) - Perforce

14. 8. 2003
Doba čtení: 6 minut

Sdílet

Dnešní šestý díl seriálu zabývajícího se linuxovou distribucí Source Mage GNU/Linux je rovněž šestým dílem seriálu věnovaného systémům pro správu zdrojových kódů. K vývoji Source Mage GNU/Linux je používán systém Perforce (The Fast Software Configuration Management System), což je systém podobných (často slyšet, že výrazně lepších) vlastností jako CVS, Subversion, BitKeeper apod.

logo: Source Mage   GNU/Linux

Perforce Software Inc.

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ákaz­ní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 PerforceQuickstar­t.

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).

Tabulka č. 465
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“.

Tabulka č. 466
$ 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.

Tabulka č. 467
$ 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ů.

Tabulka č. 468
$ 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í.

Tabulka č. 469
$ 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.

Tabulka č. 470
$ 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ů.

Tabulka č. 471
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.

Tabulka č. 472
$ 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“.

ict ve školství 24

Tabulka č. 473
$ 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).

Tabulka č. 474
Perforce Visual Client
Perforce Windows Client
Perforce Web Client
Perforce Visual Client Perforce Windows Client Perforce Web Client

PS:

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.