->> And I thought that the best way to break the ice on version - -2
-control systems and Git and some other - -3
-related concepts was to interview John Britton who - -4
-works with GitHub. So let's go and see what John has to say about - -5
-Git, about version control systems in general, - -6
-and about GitHub. John is in Tapei, if I'm not wrong. - -7
->> That's correct. - -8
->> Okay so we're, you know we couldn't - -9
-go there so we're interviewing him remotely. And I - -10
-want, I just want to thank you so much and John for agreeing to talk to us. - -11
->> Thank you very much for having me it was my pleasure. - -12
->> And, I'm just going to ask, a few - -13
-general questions because John is an expert on, - -14
-Git and GitHub. John is a developer and - -15
-a community builder is active in both the - -16
-open source and the open education areas. And - -17
-as an educational liaison we have, is working - -18
-to improve Computer Science education by bringing the - -19
-principles of open source into the classroom. And - -20
-I'm going to start with an general question, - -21
-which is what is a version control system? - -22
->> So, a version control system is - -23
-a tool that software developers use. Anybody - -24
-who's doing you know, working with digital - -25
-assets, digital projects can also use for - -26
-keeping track of, you know, revisions of your project, and when I say revisions, I - -27
-mean essentially snapshots of your project over time. So you can imagine doing - -28
-some work and then every so often, be it, every couple of - -29
-hours, every couple of days, saving a permanent snapshot of your project. - -30
->> Why is this useful? I understand that - -31
-it is nice to take a snapshot of your - -32
-project, but what did you do with the - -33
-snapshot afterwards? I think the most immediately obvious benefit - -34
-to having snapshots of your project to keeping - -35
-revisions is that you can go back. If you - -36
-have ever worked on a project and got to - -37
-a point where you solved a bunch of your - -38
-problems, and there is just one more step to do. And - -39
-you start working on trying to solve that last step, and - -40
-you break things, you make it worse then it was an - -41
-hour ago. At that point its easier to just go back - -42
-to what you had then trying to figure out what you - -43
-broke. So you can always go back in time, and the - -44
-other big one is being able to collaborate with multiple people, - -45
-so its pretty seldom these days that you. Work on a production - -46
-totally on your own. It's most common to work in, you - -47
-know, in teams and small groups. And so, using a revision - -48
-control system allows you to collaborate with other people. And make - -49
-sure that you don't step on each other's toes as you're working. - -50
->> Alright, that's great, because those are exactly some of the - -51
-topics that we're going to cover in the lesson. And so since we're - -52
-going to talk about the specifics of version control system which is - -53
-Git and you're definitely an expert in, in Git. So what would - -54
-you say is specifically special about Git? What characterizes it - -55
-and how does it compare to other version control systems. - -56
->> So if any of you have used version control systems before, you - -57
-may have heard of something like subversion, CVS, or maybe a commercial solution - -58
-like ProForce. I think the main important characteristics of Git are first that - -59
-it's open source. And the second, - -60
-that it's a distributed version control system. - -61
-So what that means, the distributed version - -62
-control system is essentially a system for tracking - -63
-revisions of your software that doesn't have any - -64
-central repository. So the biggest characteristic is that - -65
-I can do my work and you can also work on the same project at - -66
-the same time without communicating with each other - -67
-and without communicating to a central system. - -68
->> Okay, great. And so now that we saw what Git is, what is - -69
-GitHub and how does it fit into - -70
-this picture of the distributed, revision control system? - -71
->> So GitHub is, the world's largest code host, and we essentially have a - -72
-website where you can collaborate with people - -73
-when you're writing code. There's two ways you - -74
-can use GitHub. You can use it publicly for open source and you can use - -75
-it in private within your team, or your company, or within your class. And, Git - -76
-Hub started out just as a way to host your Git repositories. But it's - -77
-actually grown into quite a bit more. It's - -78
-an entire collaboration system around your code. - -79
->> How many users do you have? - -80
->> I would say that we're approaching five million. - -81
-I don't know the exact number. We're definitely more - -82
-than four million right now. But yeah, I'd say - -83
-somewhere, somewhere close to between four and five million. - -84
->> So that's a lot space I'd guess. Terabytes of disk - -85
-space, I would imagine. - -86
->> There are a lot of GIT repositories on, on our servers. - -87
->> Something else you want to say? I - -88
-guess that the when taking about GitHub there's one - -89
-thing that you kind of can't leave out and - -90
-that's that's a feature that's called a pull request. - -91
-So when you're using GitHub, you can share - -92
-your Git repository, do some work, and actually do - -93
-do a code review. Of proposed changes which - -94
-is what we call a pull request on github.com. - -95
-Essentially what it lets you do is have a discussion - -96
-about a set of proposed changes and leave feedback in - -97
-line with the code. You could say for example, this - -98
-method needs to be re-factored or I think I found if - -99
-off by one error here, just different kinds of feedback - -100
-so that before you totally integrate some proposed changes. You have, - -101
-kind of a conversation about what your code. And I - -102
-think that's really valuable when you are working in a team. - -103
->> Thank you, John, that was very informative and - -104
-thanks again for taking the time to talk to us. - -105
->> No problem, thanks for having me. I'll talk to you soon. - -106
->> Let's thank again John for enlightening us - -107
-on some aspects of version control systems, Git and - -108
-GitHub. And now, let's go over some of the - -109
-topics that we discussed with John to recap them. -- cgit 1.4.1