Programming‎ > ‎Vcs‎ > ‎


L33t software

Perforce is a centralized version control software system often used by game developers.

  • Server: As a centralized system perforce connects you do a server. It is called the Helix server or known by its program name, p4d. When using perforce for distributed versioning a local personal server is setup and it in turn is used to clone, fetch or push contents from the remote server.
  • Depot: A repository hosted by the server. A server can host multiple depots.
    • Local
    • Stream
    • Remote
    • Archive
    • Unload
    • Spec
  • Clients: To connect to a repository there are a number of clients: a command-line client (p4), a graphical user interface client (p4v) and  various plug-ins that work with commercial IDEs and productivity software.
  • Workspace: You work on your file by editing them in your workspace. The workspace let you select what depots to use and where to store them on your computer when you work on them.
  • Changelist: When you submit your changes to the server they are stored as a changelist.
  • Streams: Stream are branches with rules and relations to other streams. They can be used in a stream depot and not in local depots.
    • Mainline
    • Release
    • Development
    • Taks
    • Virtual
  • Labels
  • Jobs
  • Check out/in
  • branches

Naming conventions
Depots, workspaces, labels and branches may not have the same name. So setup rules to avoid future confusion.
  • workspaces: user_machine_product_branch. Ex spinningcubes_laptop_simsmiley for the mainline workspace.

Perforce Applications
p4 - command-line client

p4 set : List p4 set variables
p4 set P4IGNORE=.p4ignore
p4 ignores

p4v - graphical user interface client
  • Depot view
  • Workspace view
  • Pending view
  • Submitted
  • Workspaces
  • History
p4admin -
A GUI tool to perform basic Helix server administrative tasks. For full access to all actions the command-line client have to be used.

p4merge -