Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
This course is a gateway to learning software version control (SVC), process management, and collaboration techniques. Author Michael Lehman reviews the history of version control and demonstrates the fundamental concepts: check-in/checkout, forking, merging, commits, and distribution. The choice of an SVC system is critical to effectively managing and versioning the assets in a software development project (from source code, images, and compiled binaries to installation packages), so the course also surveys the solutions available. Michael examines Git, Perforce, Subversion, Mercurial, and Microsoft Team Foundation Server (TFS) in particular, describing the appropriate use, features, benefits, and optimal group size for each one.
Well, we've made it this far. We've covered the concepts of what is software version control. We've talked about the concepts of checking in and checking out, reverting, rolling back, branching, merging, tagging, labeling, and we've covered it in detail for five different products: Subversion, Perforce, Microsoft's Team Foundation Server, Git, and Mercurial. With all this information, how do you make a decision as to which one is right for you? Well, there's two main considerations.
One, if you're working in a team, and you're working in a company, or you have a client who already has an existing centralized version control server, you are pretty much going to use what it is they ask you to use, and that'll probably either be Subversion, Perforce, or TFS. If you're starting up your own team, I would highly recommend using Git or Mercurial. Both Git and Mercurial each have different followings and different key features. That might be a decision for you. For me, I most often use Git for two reasons.
One, there is integration for Git inside Apple's Xcode Development Environment, and there's also integration for Git available for Visual Studio, and two, Git hub, which I mention during the chapter on Git, is a hosted service, which is free for open-source projects and very, very low cost for private repositories for commercial projects. And it makes it very, very easy for you to use the Git repository on your local device and then push your changes periodically to the server on the cloud to the Git hub server.
Now if you remember back to my original story about restoring my hard disk, Git hub was the service that I used when I was restoring my drive, and it worked very well from me. If you're working in an environment where you're really working with the distributed team, sometimes Git and Mercurial can be best because you can export and import and send the differences by email without having to set up a server infrastructure for all of your team members. And remember Git is what's being used for the Linux Kernel by a team of a few hundred developers.
After digging into all five of these products, you'll probably have a feel for which one suits your working style the best. So if your organization doesn't mandate the use of a particular version control software system, pick the one that you feel works best for you. If they all seem equal to you, I'd highly recommend using Git. It's lightweight and it's efficient and it does the job.
There are currently no FAQs about Fundamentals of Software Version Control.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.