 Hi, my name is Martin Woodard. I work on the LibGit2 project for some of the people here. If you want, there's a bunch, LibGit2's portable scene implementation of Git, and there's bindings and a bunch of different languages.net, you know, rugged, and there's the Python ones as well. I'm not sure how advanced they are, I haven't used them. But there you go. What I was going to quickly, so I work for a small company base in the Pacific Northwest called Microsoft, and we work on LibGit2, but we actually build LibGit2 into a product some people might have heard of called Visual Studio. So this is Visual Studio, what I was going to do is quickly show you the latest build of the Git tools that are inside Visual Studio, if that's interesting, and show you how that works with the Git command line. So this is inside the current version of Visual Studio, Visual Studio 2012, I think we call it. Dev 11 is what I know it as. And then we're working on Dev 12, which is the next version. But it's not 2012 anyway. So this is Visual Studio. You can go, if you just go to, if you're a Visual Studio user, you go to tools, extensions and updates, and just search for Git, and it's there in the store. But in the next version of Visual Studio, it'll actually just ship in the box with every version of Visual Studio, including they express editions and things. It'll just be there. If you go to new projects, and let's do a console application, check the add to source control box. There you go. Hit OK. And then we are on Microsoft, so we have to ask you a million questions. So we'll come in here and we'll say we want Git, but you'll never ask me that question in again box, please. So we'll do that. Hit OK. And you just work. And things fairly stay out of your way if you want to. So I can just come in here, hello world. There we go. So this is C Sharp, if you've never seen it before. It looks awfully like Java, I guess. There we are. And if you notice, if you're a Visual Studio user, this is just Visual Studio to you. But if you notice here, there's some little plus icons. Anybody use Visual Studio here by the way? I'm just interested. A couple, a few. Yeah, OK. So this is just, there's some little plus icons here. And that shows you it's being tracked by version control. And so you just, you know, there we go. So if I can right click here and say commit. And it brings up the commit view here. And I can obviously just say, you know, initial commit. Hit commit, and that's committed it into my repo. Great. So into my local repo, obviously. So that's fairly interesting. But what if, you know, you want to do something a bit more special? Like maybe you want to go and let's do a new branch. Because, you know, I like to do feature branches. So we'll say new branch and we'll do feature A. And we'll create the branch. And then that's created the branch for me. And checked it out. I've checked out and created the branch for me. So now I can come here and, you know, just work on feature A. We'll just commit that. So it changes. Let's just say, you know, work in feature A. There we go. Now the idea is that it's just all the basic stuff you'd need is a, you know, dev, commit, push, pull, clone, merge. If you want to easily, you know, check out to different branches, you can just come in here and just easily just check out. And notice it just updates inside of Visual Studio. So there we go. So it's saying hello world. If I go back here and go to feature A, it just instantly updates inside of the IDE. You don't get asked a million questions and pop-ups and all that sort of stuff. It just works. Because we want to, the key is that we make the good things about Git shine through, you know, in the development environment. But you don't have to just be in the IDE as well. If you're saying and you like to live in the command line, then you can actually just be in the command line. So let's go to, there we go. So I'm in here. And then maybe I do, you know, notepad.reame.txt. Before I do that actually, let's just, so I'm currently in the master branch. But if I do, you know, get, check out, yes. I don't see a .git group. It's hidden, sorry. Now what's the, yeah, it's just because it's, yeah. But the .git actually, so if I do, now, this is, blah blah blah, s minus four. So there we go. There you go. So it's just git. It's not, you know, there you go. But yeah, so now if I do a, yeah, git, check out minus b from command. So there we go. I've created a new branch, created from the command line and obviously checked it. Notice here Visual Studio has already switched to it for me. I didn't have to come in and hit refresh. It just stays, it just stays connected to the command line. So you can easily just seamlessly switch back and forth to the command line if you're more familiar with that. So say I come in and do reame.txt. I don't know. I might not use vi. That won't work in this power, in this shell. There we go. Notepad. No, that's not what I want to do. Sorry, hang on a second. There we go. Yeah. From the, there we go. So now, you know, if you do git status, you can see it's detected it, but I haven't added it yet. The equivalent of that inside Visual Studio here is you see there's this little untrack files thing. If I click on here, we can actually see that reame.txt is untracked. It shows you that it's there. If you wanted, you could just right click and say add to add it into your index, but I might come down here and actually say, you know, git add reame.txt. Oh, there we go. And it's got CRLF formatting. Oh, that's interesting. I seem to have said it's LF. That'll be exciting. So there we go. Reame.txt. And then notice here it's now in my index and then I can just commit that there. Or if I want to, I can just say, you know, git commit. There we go. And then that's done. Blah, blah, blah. And then you go over and you can obviously just right click on the file, source control, view history, see all your commits. That's not particularly interesting history. Let's switch over. Yeah, let's say that. Ba, ba, ba, ba, ba. So, no, what did I want to do? Yeah, if I quickly, the only thing I wanted to quickly show you was, if we make a conflicting edit, so if we go to master and we've got hello world and then we go here, so from command, we've got that one. So let's make a quick in from command. We'll save that and we will add it. So change in from, change one, hit commit. There we go. Jump over to master. Hello world in master. There we go. Here we go, hit commit. Right, so now I've done two changes. One over in from command, one over here in master. If I obviously try now merge, so if I go to branches and I say merge from command into master, hit the merge button, I'm going to get a conflict. The thing is, it tries again to be very giddy and keep out your face. So you can carry on working if you want to. But you say here resolve the conflicts. I mean say there I've got a conflict. What do I want to do? I can hit a bunch of options or I can go press the merge button and use the graphical tool and say, you know what, I'd quite like that, but actually from command and VS and then accept merge. And then yeah, I want to normalize my line because I messed it up. And then I can go to my commit merge and actually merge it in as a commit. And notice it's already brought in the readme.txt because that wasn't in the conflict. So there we go. So that's built inside of Visual Studio using the power of Libgit 2. And if you've not looked at the Libgit 2 project yet, then go take a look at that. Always open for contributions. OK, thank you very much.