Hasty Briefsbeta

Bilingual

From CVS to Git: thirty years of source control, lived from inside

13 hours ago
  • #software-development
  • #git-history
  • #version-control
  • The article provides a firsthand account of the evolution of version control systems from pre-VCS methods to Git.
  • Early practices included using zip files with date stamps, network shares with manual versioning, and lock-based systems like SCCS and RCS.
  • CVS introduced concurrent edits and server-based repositories but suffered from issues like non-atomic commits and poor handling of branches and renames.
  • Visual SourceSafe was used in Microsoft shops, but was prone to database corruption and enforced a locking discipline that hindered collaboration.
  • Subversion (SVN) improved on CVS with atomic commits and better branching, but remained centralized, requiring a network connection for commits.
  • Git was created by Linus Torvalds in April 2005 after BitKeeper revoked its free license for the Linux kernel, focusing on distributed version control, speed, and cheap branching.
  • GitHub, launched in 2008, popularized Git through features like pull requests and social coding, making it the de facto standard for version control.
  • Despite alternatives like Mercurial, GitLab, and newer systems such as Sapling and Jujutsu, Git remains dominant due to its robust design and network effects.
  • The author reflects on personal experiences with each system, noting that Git's failure modes are often user errors rather than design flaws.
  • Git is unlikely to be replaced in the near future, as its core distributed model and content-addressed storage have proven effective for over two decades.