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.
Almost all Version Control systems have at least four different ways of accessing the repository. First, as we've already seen is the command line. Most Version Control systems also have Window tools or GUI tools to access the repository. Some Version Control systems also offer integration into your favorite Integrated Development Environment, or IDE, such as Eclipse or Visual Studio. And many third-party tools allow integration into the file browser built into your operating systems, such as the Mac Finder or the Windows Explorer, and this is sometimes called shell integration.
In this movie we'll look at the GUI tools, and in the next two movies we'll look at IDE integration and shell integration. Here we're going to look at five GUI tools available for the five Version Control products that we're going to be covering in subsequent chapters. There's not a GUI tool for Subversion for Windows, but there is a very nice GUI tool called Versions that's available on the Mac. Perforce has a Visual Client that works on both Windows and Mac, and they also have a web client which works on Mac and Linux.
Microsoft's Team Foundation Server only works on Windows, but they have both the Team Explorer, which is a stand-alone GUI, and IDE integration, which we'll see in the next movie, which works with Visual Studio. If you use a hosted cloud provider such as GitHub, GitHub has a very nice GUI tool that allows you to work with teams, integrate issue tracking, and do code review, which is available here at github.com. For Mercurial, there's a nice visual tool available only for the Macintosh, which is called MacHg.
It not only allows you to see your changesets and see inside the changesets, it also allows you to see a graph of the branching and merging so that you can visually understand how all the different changesets relate to one another. The GUI tools all include functionality that allow you to do bulk add, check in and check-out, reverting, branching and merging. They will also allow you to look at the repository and open up a file in the native file browser, such as you'll be able to right-click on the file and say Show in Finder or Show in Windows Explorer to actually open up the file system to correspond to the file that's in the Version Control system so that you can locate the actual files that are in your working set.
As you can see, most visual tools provide advanced functionality that provides visual ways of performing the functionality that's specific to the Version Control system that they support. GUI tools can be really handy and can allow you to work really fast. If you're not comfortable with working on the command line, GUI tools provide a great alternative. If you are a command line junkie, you can do everything you want to from the command line and never have to touch a GUI tool.
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.