Ten years Git: an interview with the creator - Linus Torvalds





This week was ten years from the date when the Linux kernel developers are faced with an obstacle: they could no longer use its version control system BitKeeper and no other source code control system did not meet their requirements in terms of distributed resources. Linus Torvalds, creator of Linux, accepted the challenge and disappeared over the weekend to appear next week with Git. Today, Git is used in thousands of projects and Git pushed programming in groups of developers to the new social level.

To mark this date, we asked Linus to share the hidden history of the creation of Git, tell us what he thinks about this project and its impact on the development of software products. You will find it in the comments below the text. For this interview the following weeks, Git, where every day we will consider individual projects that use the version control system. Expect stories develop KVM, Qt, Drupal, Puppet, Wine, and many others.


Why did you set up Git?
Torvalds:
It occurred to me when Tridge (Andrew Tridgell) began to reverse-engineer a simple protocol BK, that was a violation of the rules of use of BK. I spent a few weeks (months? That's how I felt myself and) trying to mediate between the Tridge and Larry McVoy, but eventually it became clear that it simply does not work. So, at some point, I just decided that I can no longer continue to use BK, but I also do not want to go back to the worst days that were before the BK. It is sad that while there were other tools for SLE, which to some extent tried to use a distributed development model, but none of them worked well in the case of remote use. I had my own performance requirements, which are approximately even could not be satisfied with what was available; and I'm also worried about the integrity of the code and the design process, so I decided to write his.

How you came to this? You wrote it all weekend or just the usual time?
Torvalds:
I would like to emphasize that despite the fact that it has been collected for ten days or something like that (during which I made my first Git commit to the repository Linux kernel), it was not in any way crazy coding. The volume of this early code is small enough, everything depended on the correct implementation of the basic ideas. And so I spent some time "grinds" before the entire project was launched. I have seen the problems of others. I saw what I wanted to avoid.

Whether it increased (Git) to the level of your expectations? How well it (Git) works on your estimates? Are there any restrictions?
Torvalds:
What do you think, why is it (Git) has been so widely adopted in use?
Torvalds:
Will Git always exist, or you anticipate a revision of SLE in the next ten years? Will you be one of those who write it?
Torvalds:
Without false modesty;)

Why Git works so well in Linux?
Torvalds:
Just for example: the concept of the merger was seen as something very painful and difficult in many SLE. You would have had to plan their draining, because they were serious business. This is not ustaivaet me since I usually do dozens of mergers in the day when I am in a time window of the merger, and even then, the workload should not be in the merger, and testing code. The merger itself takes a couple of seconds, it is much more interested in writing explaining the merger.

So, Git was built and written for my requirements. And so it happens.

People said that Git - only for the super smart people. Even Andrew Morton (Andrew Morton) said that Git «Git designed to make you feel even more stupid than before." What would be your response to that?
Torvalds:
You can do many things using Git, and many of the rules about what you should do not come from technical limitations, but because so works well when you have to interact with other people. Git is a very powerful set of tools that can overload the beginning, but it also means that you can often do the same or similar things in different ways and they all worked. In general, the best way to learn Git, probably, is to just do the simple things and do not even look at other things as long as you're not confident with regard to the basics.

There are several historical reasons for the perception of Git as a complex thing. One of them - the fact that it was really difficult. Those people who started using Git before anyone else to work with the Linux kernel, really had to learn to use a rather complicated set of scripts to make everything work. All efforts were aimed at to get to work the core technology and quite a bit - in fact, to make it easy or obvious. And Git, of course, had a reputation which provided knowledge of what you were doing before. However, it was generally true only during the first six months or a year.

Another reason that people felt like Git - a complicated thing that Git is very peculiar. There are people who enjoy such things as CVS for a decade or two, and Git - not CVS. Not even similar. Different concepts. Teams differ. Git never tried to look like CVS, and vice versa. And, if you used the CVS-like system for a long time, it gives the impression of complexity and causeless differences Git. People were repulsed strange system version numbers. Why is the version number of Git «1.3.1», but not as nice done with increasing numbers in the versions of CVS? Why are there (Git) strange and terrible 40-digit number in hexadecimal?

But Git was not unreasonably others. These differences were necessary. Most likely, people just think that Git is more complicated than it really is, simply because they come with other baggage of experience. CVS leaves background. At the moment, probably, there are many programmers who have never used CVS in their lives and they can find it, how it works CVS, very confusing simply because they have learned in the first place Git.

Could speed the development of the Linux kernel to grow with the existing speed without Git? Why?
Torvalds:
What is your current opinion on GitHub?
Torvalds:
This is partly on how the Linux kernel is developed, but partly also because the interfaces to GitHub actively encourage bad behavior. Commits made on GitHub comments contain these commits, and so on, simply because the web interface on GitHub actively encouraged to bad behavior. They fixed some of these things, so that probably works better, but it will never be suitable for something like the Linux kernel.

What is the most interesting use Git and / or GitHub you met?
Torvalds:
Do you have any side projects "in the hole"? Some wonderful projects that will dominate in software development for the next years?
Torvalds:
ps: advice and suggestions are welcome to transfer in order to improve the quality of translation.

Source: geektimes.ru/post/248744/

BASHNY.NET Portal – Life is interesting!
2012-2026

Bashny.Net