Thursday, 1 August 2019

The Logbook: A brief history of Git and version control systems @TheBlock__ #Genesis #Infrastructure #Op-Ed #Open Source #Git #github

Last week, there was an Last week, there was an outcry on Twitter concerning GitHub’s decision to ban developers in sanctioned countries from using its platform. The move also sparked conversations regarding the Bitcoin Core source code and Git, the distributed version control system upon which GitHub has built its centralized business.

For this week’s column, we are going to take a brief look at the history of Git and version control systems (VCS).

Version Control Systems

A version control system is a software tool used by developers to record and manage changes to a codebase over time. Using VCS, developers could compare versions of a codebase to find changes and fix mistakes.

Because coding projects typically have multiple developers working in parallel, a VCS is necessary to prevent concurrent code contributions from conflicting with one another as changes in one part of a codebase might affect changes in another.

Prior to the introduction of VCS in the 1970s, software developers worked with a single person to update a single master version of a project. This process was both tedious and inefficient. Furthermore, unless someone regularly saves a copy of each new updated version of a codebase, past version would be inaccessible.

In an attempt to fix some of these inefficiencies, Marc Rochkind, a developer, created the Source Code Control System (SCCS), the very first VCS. SCCS helped decrease the memory space needed to maintain multiple versions of a codebase and improved developer collaboration through code module restrictions and proper documentation.

By creating SCCS, Rochkind also kicked off what many noted as the three generations of version control. SCCS, while an improvement to the development process, only allowed a single developer to work on one file at a time through a system of locks.

The second generation of VCS like Concurrent Versions Systems enabled multiple developers to work on a codebase with the caveat that users must merge the current code revisions into their final work before committing it. This centralized approached caused problems with collaboration as developers as Gitlab explains “If while you were preparing to create a new commit (new revision) somebody created a new commit on the same branch and pushed to the central repository, CVS would force you to first update your working directory and resolve conflicts before allowing you to commit.”

The third and current generation of VCS is the Distributed Version Control System (DVCS) generation. The main change in the VCS of this generation was enabling developers to commit before they merge, avoiding conflicting code commits and enabling a distributed development environment. The most popular tool VCS of the current generation is Git.

A history of Git

Git is a DVCS developed in 2005 by Linus Torvalds of Linux fame. Prior to developing and using Git, the Linux kernel developer community was using BitKeeper, another DVCS, as their primary version control system. However, in April 2005, Andrew Tridgell, a Linux contributor, developed a free software client to interoperate with BitKeeper, which was a proprietary tool. For his actions, BitMover, the company behind BitKeeper, revoked the license allowing Linux developers to freely use the BitKeeper product.

While Torvalds attempted to mediate the conversation between Tridgell and Larry McVoy, the former CEO of BitMover, nothing worked, so he decided that the Linux development community needs to move off BitKeeper.

However, in Torvalds’ own words, he “really didn’t want to go back to the bad old pre-BK days.” As such, he decided to code his own VCS, which came to be known as Git. According to Torvalds, it took him around 10 days to implement Git for use.

Fueled by Torvalds' brand recognition, Git grew in popularity, becoming a platform on which multi-billion dollar companies like GitHub and GitLab are built.



source https://www.tokentalk.co/The Block/the-logbook-a-brief-history-of-git-and-version-control-systems-5d4363b0f4c85eab76fc9853

No comments:

This analyst says there’s a “high chance” Bitcoin may never fall under $5k again @cryptoslate #Analysis #Price Watch

Once Bitcoin (BTC) started to incur strong losses in the second half of 2019, analysts were once again making extremely low price prediction...