upgrade
upgrade

🔄DevOps and Continuous Integration

Popular Version Control Systems

Study smarter with Fiveable

Get study guides, practice questions, and cheatsheets for all your subjects. Join 500,000+ students with a 96% pass rate.

Get Started

Why This Matters

Version control isn't just about saving different versions of your code—it's the backbone of every CI/CD pipeline you'll build and every DevOps workflow you'll implement. You're being tested on understanding how teams collaborate at scale, why certain architectures suit different project needs, and what trade-offs exist between centralized and distributed models. These systems determine how code flows from developer laptops to production servers, and mastering them means understanding the entire software delivery lifecycle.

The key concepts here revolve around distributed vs. centralized architectures, branching strategies, and platform integration capabilities. When you encounter questions about CI/CD pipelines, repository management, or team collaboration patterns, you need to know which tools solve which problems. Don't just memorize names—understand what architectural model each system uses and why that matters for automation, scaling, and team workflows.


Distributed Version Control Systems

Distributed systems give every developer a complete copy of the repository, including its full history. This architecture enables offline work, faster operations, and more flexible branching strategies—all critical for modern DevOps practices.

Git

  • Industry-standard distributed VCS—powers the vast majority of modern software projects and integrates with virtually every CI/CD tool
  • Branching and merging are lightweight operations—enables feature branches, GitFlow, and trunk-based development patterns essential for continuous integration
  • Complete local repository—every clone contains full history, allowing offline commits and reducing server dependency

Mercurial

  • Distributed architecture with emphasis on simplicity—offers similar capabilities to Git but with a more intuitive command structure
  • Clean, consistent command-line interface—lower learning curve makes it accessible for teams transitioning from centralized systems
  • Strong performance with large repositories—handles extensive commit histories efficiently, though less ecosystem support than Git

Compare: Git vs. Mercurial—both are distributed systems supporting full local repositories, but Git dominates in tooling ecosystem and CI/CD integration while Mercurial prioritizes usability. If asked about distributed VCS adoption, Git is your default answer; Mercurial appears in legacy or niche contexts.


Centralized Version Control Systems

Centralized systems maintain a single authoritative repository that all developers connect to. This model simplifies access control and works well for binary assets but creates a single point of failure and requires constant connectivity.

Subversion (SVN)

  • Single central repository model—all commits go directly to the server, providing a clear "source of truth" but requiring network access
  • Atomic commits ensure consistency—changes are applied as complete transactions, preventing partial updates that could break builds
  • Directory-level versioning—tracks changes to entire directory structures, not just individual files, useful for projects with complex folder hierarchies

Perforce

  • Enterprise-grade centralized system—designed for massive codebases with thousands of developers and terabytes of assets
  • Exceptional binary file handling—optimized for large assets like game textures, video files, and compiled binaries that Git struggles with
  • Fine-grained access control—supports complex permission schemes required in enterprise environments with strict compliance requirements

CVS (Concurrent Versions System)

  • Historical foundation of version control—one of the earliest systems, establishing core concepts like branching and merging
  • File-level versioning only—tracks individual files rather than changesets, limiting its ability to capture related changes atomically
  • Largely superseded by modern tools—understanding CVS helps contextualize why systems like SVN and Git were developed

Compare: SVN vs. Perforce—both centralized, but SVN suits general software projects while Perforce excels with large binary assets and enterprise scale. For exam questions about game development or multimedia pipelines, Perforce is typically the answer.


Integrated DevOps Platforms

These platforms combine version control with CI/CD pipelines, issue tracking, and deployment tools. Integration reduces context-switching and enables end-to-end automation from commit to production.

GitHub

  • World's largest code hosting platform—built on Git, hosts millions of repositories and defines modern open-source collaboration patterns
  • Pull request workflow—standardized code review process that integrates with CI checks, enabling automated quality gates before merging
  • GitHub Actions for CI/CD—native pipeline automation that triggers on repository events, eliminating need for external CI servers

GitLab

  • Complete DevOps platform in a single application—covers planning, source control, CI/CD, security scanning, and monitoring
  • Built-in CI/CD without external tools.gitlabci.yml`.gitlab-ci.yml` files define pipelines that run automatically on GitLab's infrastructure
  • Self-hosted or cloud options—organizations can run GitLab on their own servers for compliance or cost reasons

Bitbucket

  • Atlassian ecosystem integration—connects seamlessly with Jira for issue tracking and Trello for project management
  • Bitbucket Pipelines for automation—integrated CI/CD configured via bitbucketpipelines.yml`bitbucket-pipelines.yml` in the repository root
  • Supports both Git and Mercurial—though Mercurial support was deprecated, historically offered flexibility in VCS choice

Azure DevOps

  • Microsoft's integrated development platform—combines repos, pipelines, boards, and artifacts in one service
  • Supports both TFVC and Git—teams can choose centralized or distributed models within the same platform
  • Deep Azure cloud integration—streamlines deployment to Azure services with pre-built pipeline tasks and service connections

Compare: GitHub vs. GitLab vs. Bitbucket—all three host Git repositories with integrated CI/CD, but GitHub leads in open-source community, GitLab offers the most complete single-platform DevOps experience, and Bitbucket excels when teams already use Jira. Know which ecosystem alignment matters for your scenario.


Specialized Version Control Systems

Some systems target specific use cases where mainstream tools fall short. Understanding when to choose specialized tools demonstrates advanced architectural thinking.

Plastic SCM

  • Optimized for large files and complex branching—handles binary assets and intricate branch structures that challenge Git
  • Visual branch management—graphical tools help teams understand and navigate complex repository histories
  • Game development focus—widely adopted in studios where large art assets and frequent merges are standard workflow

Compare: Plastic SCM vs. Git LFS—both address large file challenges, but Plastic SCM is a complete VCS designed for this purpose while Git LFS is an extension retrofitting Git. For dedicated asset-heavy workflows, Plastic SCM offers a more integrated solution.


Quick Reference Table

ConceptBest Examples
Distributed architectureGit, Mercurial
Centralized architectureSVN, Perforce, CVS
Enterprise binary asset handlingPerforce, Plastic SCM
Integrated CI/CD platformGitHub, GitLab, Bitbucket, Azure DevOps
Open-source community hostingGitHub, GitLab
Atlassian ecosystem integrationBitbucket
Game development workflowsPerforce, Plastic SCM
Legacy/historical systemsCVS

Self-Check Questions

  1. Which two version control systems share a distributed architecture but differ in ecosystem adoption and tooling support? What makes one dominant in CI/CD pipelines?

  2. If a game studio needs to version control 50GB of texture files alongside source code, which systems would you recommend and why? Compare the trade-offs between them.

  3. A team currently uses Jira for project management and wants integrated version control with CI/CD. Which platform offers the tightest integration, and what pipeline configuration file would they use?

  4. Explain the key architectural difference between Git and SVN. How does this difference impact a developer's ability to work offline and a team's disaster recovery strategy?

  5. Compare GitHub, GitLab, and Azure DevOps as complete DevOps platforms. If an organization prioritizes self-hosting capabilities and a single-application approach, which would you recommend?