Perforce

Perforce
VývojářPerforce Software
Operační systémAIX
Typ softwarucentralized version control system a distribuované verzování
Webwww.perforce.com/products/helix-core
Některá data mohou pocházet z datové položky.

Perforce je komerční systém pro správu revizí vyvinutý Perforce Software, Inc. První verze byla vydána v roce 1995.

Architektura

Server Perforce spravuje centrální databázi a hlavní repositář verzí souborů. Perforce podporuje jak Git klienty, tak klienty, kteří používají jeho vlastní protokol. Git Klient může komunikovat se serverem Perforce přes SSH a další Perforce klienti komunikují se serverem přes TCP/IP pomocí vlastního RPC. Uživatelé předkládají změněné soubory jako changelisty, které se atomicky odesílají na server.

Server - Metadata

Databáze Perforce je proprietární a přednastavena. Ukládá metadata týkající se systému (stav souborů, atributy souborů, větvení a slučování, historie, changelists, popisy změn, informace o uživatelích, skupinách, štítky apod.). Soubory jsou identifikovány podle namespace (OS-neutrálních souborů). Obsah souboru sám o sobě není uložen v databázi. V databázi je uložen obsah jako MD5 hash, který je použit pro ověření integrity souboru úložiště.

Databázové tabulky jsou uloženy jako binární soubory. Databázi, která byla poškozena, lze obnovovat z nedávných checkpointů.

Server - Depo

Obsah verzovaného souboru je uložen v hierarchii hlavního adresáře, jehož nejvyšší úrovně se nazývají "depots". Revize textových souborů jsou uloženy jako RCS delty a binární soubory revize jsou uloženy v plném rozsahu. A textové revize jsou uloženy jako RCS deltas a revize binárních souborů jsou uloženy v plném rozsahu.

Kódování použité pro textové soubory v úložišti je buď ASCII nebo UTF-8. V závislosti na konfiguraci serveru Perforce. Soubory v repositáři nejsou šifrovány. Revize, které jsou větvemi nebo kopie jiných revizí jsou virtuální kopie v rámci úložiště. Ve výchozím nastavení jsou zachovávány všechny úpravy, limity lze nastavit na počet dochovaných revizí. Zastaralé revize a soubory mohou být vymazány správcem. Soubory v repositáři musejí být zahrnuty do pravidelných záloh systému.

Klienti

Klientské části se zhruba dělí do pěti kategorií: Git, příkaz, GUI, web a plugin. Systém Perforce může být dostupný jako repozitáře Git, ať již jako celek nebo jen část. Uživatelé Gitu a jiných klientů mohou pracovat se stejným obsahem souboru a historie. Git "commits" jsou viditelné pro uživatele ostatních klientů jako changelisty Perforce, a naopak.

Původní příkazové rozhraní je P4 - příkazová řádka. P4 može být použito v libovolném shellu nebo skriptu. Ve výchozím nastavení produkuje čitelný výstup, ale může také produkovat tagovaný textový výstup, výstup pro Python, pro Ruby. Nativní C++ a Java API pro Perforce klienty jsou také k dispozici, stejně jako Lua, Perl, Python, PHP, Objective-C.

Dva GUI klienti jsou k dispozici pro uživatele, multiplatformní, postavený na Qt-frameworku P4V a pouze pro Windows P4Win. Oba podporují většinu uživatelských operací. Správa GUI klienta, P4Admin, podporuje podmnožinu administrativních úkonů. P4Admin, jako P4V je multiplatformní a postavený na Qt-frameworku. P4V a P4Admin lze rozšířit pomocí apletů napsaných v JavaScriptu a HTML.

Pluginy jsou k dispozici pro IDE Eclipse a Visual Studio.

Distribuovaný a dálkové ovládání revizí

Perforce má čtyři mechanismy pro poskytování kontroly revizí při distribuci nebo pro vzdálené týmy; tyto mechanismy mohou být použity samostatně nebo v kombinaci. Prvním z nich je proxy server, který ukládá často čtené verze s cílem snížit časy přístupu k souborům pro vzdálené uživatele. Tento mechanismus vyhovuje uzavřeným vývojovým organizacím, kde jsou požadované centrálně řízené úložiště a všeobecně přístupná databáze.

Druhý mechanismus, známý jako remote depots, umožňuje uživatelům připojeným k verzovaným souborům, které spravují jiné servery. S remote depots, každá organizace má kontrolu nad svým vlastním serverem a umožňuje, aby jednotlivé části jeho úložiště viditelné pro ostatní servery. Tento mechanismus se používá pro volně spojené organizace, kde je vyžadován peer-to-peer přístup.

Třetí mechanismus, známý jako replikace, reflektuje všechny (nebo některé) data z úložiště na jiný server. Repliky zajišťují rychlejší dobu odezvy pro vzdálené uživatele.

Konečně, Perforce může být replikován na Git repozitáře, za použití standardního Git protokolu a příkazů.

Features

  • Kompletní soubory a metadata historie
  • Celková historie revizí; rozvětvené, přejmenované, přesunuté, kopírované a smazané soubory
  • Trojcestné slučování souborů; sloučení, sledování sloučení a prevence znovu-spojování; detekce společného předka
  • Grafické verzování, slučování, a offline / online nástroje
  • Grafické zobrazování souboru historie
  • Centralizovaná úložiště kontroly přístupu s podporou pro distribuovanou kontrolu revizí

Souběžné změny

Systém Perforce nabízí hybridní merge a lock souběžnostní model. Tak jako při práci s podobnými systémy, uživatelé nezamykají soubory, aby se na nich mohli pracovat a před odesláním své práce do repositáře jsou vyzváni k vyřešení všech konfliktů, které jejich změny způsobili. S Preforce mohou uživatelé případně soubory zamknout, aby zajistily, že nebudou muset tyto konflikty v budoucnu řešit vyřešit.

Větvení a slučování

Soubor je jednoznačně identifikován svým kompletním názvem souboru, např. //depa/trunk/src/item.cpp. Všechny nesmazané revize souboru mohou být rozvětvené. Perforce využívá inter-file branching, kde větvení vytvoří nový soubor s novým názvem. Například, můj //index.php může být rozvětvený do //index.php a každý ze souborů se pak může vyvíjet nezávisle. Cesty v úložišti jsou brány jako kontejnery pro rozvětvené sady souborů. Například, soubory v //depa/trunk cestě mohou být rozvětvené jako soubory do nového //depot/rel1.0, což vyústí v dvě sety souborů, které se vyvíjející nezávisle a které mohou být v budoucnu sloučeny.

V Perforce je operace, která sloučí změny z jedné větve do druhé nazývána integration. Integrace rozšíří změny z námi upravovaných souborů do odpovídajících cílových souborů. Ve výchozím nastavení integrace převede všechny změny. Naše změny mohou být omezené nebo filtrované podle seznamu změn, data, označení, názvu souboru, či vzoru.

Dostupnost

Zdarma ke stažení na internetových stránkách Perforce.

Server a klientský software jsou obvykle vydávány dvakrát do roka a to jako předpřipravené spustitelné soubory pro Microsoft Windows, Mac OS X, Linux, Solaris, FreeBSD a další operační systémy.

Použití serveru Perforce je neomezené až pro dvacet uživatelů a dvacet pracovních prostorů, nebo neomezený počet uživatelů a až 1000 souborů, bez licence. Je nutno zakoupit licenci pro více uživatelů nebo více pracovních prostorů, licence lze zakoupit na dobu neurčitou nebo na základě předplatného.

Free licence jsou k dispozici na open-source software vývoj, školy nebo třídní projekty a zkušební / hodnotící období. Použití Perforce klienta je neomezené, stejně jako on-line přístup k technické dokumentaci.

Osvojení

V červnu 2012 bylo na více než 400 000 licencovaných uživatelů na 5500 organizací.

Reference

V tomto článku byl použit překlad textu z článku Perforce na anglické Wikipedii.

Média použitá na této stránce

Revision controlled project visualization-2010-24-02.svg
Autor: , Licence: CC BY-SA 3.0
Visualization of the "history tree" of a revision controlled project, showing branching, merging, tagging, etc.