Developer(s) | Perforce Software |
---|---|
Initial release | 1995 |
Stable release |
2016.1/1411799 / June 14, 2016
|
Development status | Active |
Operating system | AIX, FreeBSD, HP-UX, Linux, macOS, NetBSD, Solaris, Windows |
Type | Revision control |
License | Proprietary |
Website | www |
Perforce Helix (originally just called Perforce) is a commercial, proprietary revision control system developed by Perforce Software.
The Perforce Helix server manages a central database and a master of file versions.
The Perforce Helix database is proprietary, preconfigured, and self-installed. It stores system-related metadata (file state, file attributes, branching and merging history, changelists, change descriptions, users, groups, labels, etc.). Files are identified by namespace (i.e., by OS-neutral filenames). File content itself is not stored in the database. MD5 hashes of file content are stored in the database, however, and can be used to verify repository file integrity.
Database tables are stored as binary files. Checkpoints and journals are written as text files that can be compressed and offloaded. A database that has been corrupted by hardware failure or other catastrophe can be recovered from the most recent journal and checkpoint. Administrators must plan for disaster recovery by configuring database journaling and setting up regular checkpoints.
Versioned file content is stored in a master directory hierarchy whose top levels are called "depots". Text file revisions are stored as RCS deltas, and binary file revisions are stored in their entirety.
The encoding used for text files in the repository is either ASCII or UTF-8, depending on Perforce server configuration. Repository files are not encrypted. Revisions that are branches or copies of other revisions are virtual copies within the repository. All revisions are preserved by default; limits can be set on the number of revisions preserved. Obsolete revisions and files can be purged by the administrator. Repository files must be included in regular system backups.
Clients to the Perforce Helix system fall into roughly five categories: Git, command, GUI, web, and plugin. The Perforce system can make part or all of its content available as Git repositories. Users of Git and of other clients can work with the same file content and history. Git commits are visible to users of other clients as Perforce changelists, and vice versa. Users submit changed files together in changelists, which are applied as atomic commits.