DEV Community

Cover image for Git: History
Mauro Torres
Mauro Torres

Posted on

Git: History

What's Version Control?

Version control is the activity of managing the versions of a given project.

VCS stands for Version Control System (or Software), they can manage a project doesn't matter it's size, can be a simple "Hello world!" or a entire Kernel (like Linux).

Why Git was created?

The creator of Git is the same creator of Linux. Linus Torvalds. Git was the boost that the open source world needed to start growing exponentially. Before that, version control softwares were difficult to use and horrible in terms of performance.

Microsoft Source Safe, IBM Rational Clear Case, Subversion, etc., all of these VCS's were terrible in performance and practicality, they were not suitable for handling a big project.

Well, an entire kernel is a huge project, it has many, many lines of code and must be maintained by one person, or a team, or more than 15,600 developers and 1,400 companies. This is the Linux Kernel, one of the largest open source projects.

Linus was (and still is) taking care and maintaining this project, but some time ago he had problems, big problems.

The problem was that they didn't have a good VCS, they used Patches and Tarballs for the first 10 years of kernel maintenance. Linus considers them to be a much superior way rather than using Subversion or another CVS at the time.

Unfortunately Linus ended up using CVS for 7 years in a commercial company, he says he hates him with passion.

On May 14, 2007, Torvalds participated of a Google Tech Talk. He talked about Git. A brief excerpt from the lecture:

I credit CVS in a very very negative way. Because I, in many ways, when I designed git, it's "what would Jesus do" except that it's "what would CVS never ever do"-kind of approach to source control management. I've never actually used CVS for the kernel. For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is, but I did end up using CVS for 7 years at a commercial company, and I hate it with a passion.

When I say I hate CVS with a passion, I have to also say that if there any SVN users (Subversion users) in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started, because the whole slogan for the Subversion for a while was 'CVS done right' or something like that. And if you start with that kind of slogan, there is nowhere you can go. It's like, there is no way to do CVS right.
[...]
Positive credit is BitKeeper. and I realize that a lot of people thought there were a lot of strife over with BitKeeper, and that the parting was very painful in many ways. As far as I am concerned, the parting was amicable, even though it looked very non-amicable to outsiders. And BitKeeper was not only the first source control system that I ever felt was worth using at all, it was also the source control system that taught me why there is a point to them, and how you actually can do things.

At this point, we already know what VCS is and what is the basic criteria of Git architecture: don't be like CVS.

In the next article I'll give you more details about the history and we'll dive in the Git's architecture. See ya!

Top comments (0)