What is Perforce?
Course - Helix Concepts
- What is Perforce?
- System Components
- Basic Workflow
- Codeline Management
- The Mainline Model
- Branching Basics
What is Perforce?
Review the client server architecture used to version all types of files.
Learn about connecting to Perforce Server, configuring file depots, and associated metadata creation.
Populate a workspace with files, submit your changes to the depot, and review the changelist information.
File Type Support and Extensibility
Discover the file types that can be versioned in Perforce and the mechanics to store each.
Using Changelists to Manage Files
Use changelists to group your all your file edits into logical collections of work.
Adding and Deleting Files to the Depot
Place new files in your workspace for addition to Perforce server. Remove unnecessary file by marking them for delete.
Examine codeline lifecycle including parent/child branching relationships and code movement between branches.
The Mainline Model
Learning about our recommended mainline model for managing code stability. Set up policies to manage risk using the "Tofu" scale.
Best Practices using the Tofu Scale
Employ a policy of copying or merging code based on readiness for release.
Become familiar with the terms and concepts for parallel development and the mechanics behind branching in Perforce.
Perforce is a version control system for digital assets.
A digital asset can be any form of data stored on a computer including source code, text, graphics, sound, and video files.
A version control system records deletions, additions, and edits to digital assets as separate file versions across the lifecycle of a project or application.
Although version control systems are commonly thought of as being used only by software developers, version control can be used by anyone who needs to manage the lifecycle of data they are working with, such as technical writers, graphic artists, video editors, or anyone working in an environment of collaborative development.
Perforce uses a client/server architecture. In a client/server architecture, the server and client components are typically installed on separate machines, accessible across a network. The client and server components communicate using standard network protocols, such as TCP/IP. The Perforce server host machine listens for commands from Perforce clients on a dedicated port. A Perforce client connects with the server using the server machine's host name and the dedicated port number.
Applications written for client/server environments distribute work across the client and server components to optimize performance and usability.
Work that is highly computational and resource intensive is typically done at the server. The server component might also serve as a central repository and management point for the application data and metadata, and coordinate activities and service requests from multiple client instances, such as reporting, data maintenance, and indexing.
Work that requires user input and fewer resources, such as manual data editing, is typically performed at the client. The application components transmit data and service requests between the client and server on an as needed basis.