Perforce
# Perforce

Perforce ist eine Software zur Versionsverwaltung von Dateien und Verzeichnissen.

## Architektur

Perforce unterstützt das copy-modify-merge-Konzept. Ein Arbeiten mit dem lock-modify-write-Ansatz ist jedoch auch möglich. Neben der üblichen Verwaltung von Dateien, die lokal in definierten Arbeitsbereichen ("workspaces") geschieht, enthält Perforce noch folgende Objekttypen: Labels (zum Markieren bestimmter Revisionsstände der versionierten Dateien), Branch-Views (Definitionen von Verzweigungszusammenhängen) und Jobs (ähnlich den Tickets eines Bugtracker-Systems).

Perforce ist als Client-Server-Architektur realisiert. Die Serverapplikation verwaltet eine Datenbank mit den Metadaten über die versionierten Dateien, darunter Bearbeitungskommentare, Versionsnummern und die Relationen zwischen den Versionen. Die Dateien selbst werden separat als RCS-Deltas im Dateisystem des Servers abgelegt. Der Server wird für mehrere Betriebssysteme angeboten.

Der Client, der für verschiedene Betriebssysteme verfügbar ist (darunter GNU/Linux, Windows und macOS), kommuniziert mit dem Server über TCP/IP. Zum kommandozeilenbasierten Client (genannt P4) existieren verschiedene GUI-Varianten, die die üblichen Benutzeraufgaben wie Auschecken, Einchecken und Vergleichen von Versionen vereinfachen. Daneben existieren auch Schnittstellen zu Skriptsprachen wie Perl oder Ruby.

Perforce versioniert jede Datei einzeln, verwaltet aber sogenannte Changelists, die für das Repository globale Nummern bekommen. Mit jeder Eincheck-Aktion wird eine Changelist, bestehend aus beliebig vielen Einzelaktionen auf Dateien (beispielsweise Ändern, Hinzufügen, Löschen) committed. Die Versionsgeschichte eines Ordners im Repository zeigt diese globalen Änderungslisten, womit jederzeit die gesamte Ordnerstruktur eines bestimmten Zeitpunkts wiederhergestellt werden kann.

## Lizenzierung

Seit Januar 2012 ist eine Version des Perforce-Servers für höchstens zwanzig Anwender (mit maximal zwanzig Arbeitskopien) frei erhältlich – zuvor lag die Grenze bei zwei Benutzern. Alternativ dazu ist ein Perforce-Server mit unbegrenzter Nutzerzahl, aber mit insgesamt höchstens 1000 Dateien frei verwendbar. Ebenfalls frei erhältlich ist Perforce für quelloffene Projekte, Schulprojekte und für Testzwecke. Eine kommerzielle Nutzung ist kostenpflichtig. Alle Clients sind frei verfügbar und können auf beliebig vielen Systemen installiert werden.

## Verbreitung

Im Januar 2010 hatten 5.000 Organisationen Lizenzen für mehr als 320.000 Benutzer erworben.

