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.
We've looked at command line interfaces for Version Control, GUI interfaces for Version Control, IDE integration for Version Control, and finally the last way you can access Version Control is through a process called shell integration. This means that instead of just looking at the project file inside your IDE, you can actually look at the file in directory tree inside the Windows Explorer or the Macintosh Finder, or their equivalent on Linux, and actually look at the files in your working set where they live and interact with Version Control there. That allows you to add files, check files in, check files out, revert, all from right inside whatever the shell is that you're currently using.
It can show you which files are up to date, which files are checked out, which files have pending changes, sometimes even which files have conflicts. The way they do this is by providing context menus so that you go to a file or a directory and right-click, and you'll see a series of context menus that allow you to check in and check out. They also have visual status indicators, such as green dots for files that are checked in and red check marks for files that are checked out and so forth. So let's take a look at the shell integrations available for Windows and for Macintosh for the five Source Code Control providers we're looking at in this course.
First, for Windows there is a product called TortoiseSVN. This is a Windows Explorer extension for using Subversion with Windows. Perforce provides a product called the Perforce Plug-in for Windows Explorer that adds a Perforce menu to the standard Explorer context menu in Windows. For Team Foundation Server, Microsoft provides the Team Foundation Server Power Tools. While this is not part of the released Visual Studio product, it is something that is kept up to date with every release of Visual Studio and provides, not only Windows Explorer integration, but provides a number of additional facilities.
If you're using TFS, I highly recommend getting the Team Foundation Server Power Tools. For Git, there is an open-source project over here on code.google.com called TortoiseGit that provides something similar to TortoiseSVN but for Git. As you can see here in the Context menu, you can Pull and Fetch and Push and Show the logs and Resolve, Revert. Everything that you can do on the command line, you can do from this Context menu. And the final integration for Windows is TortoiseHG, which is again, Tortoise for Mercurial, and you can see here it allows you to Add Files and Revert Files.
And here you can see an example of the kinds of icons that are enhanced when using one of these shell extensions. Here you can see files that are checked in, files that still need to be added, files that have a conflict. Similarly, for the Macintosh there is a product here called SCPlugin, which is Subversion. They call it here a file-icon badging and commands from Finder. Essentially, it creates a context menu in the Finder that has Subversion commands on it. Similarly, DeltaWalker is an equivalent functionality for Git that does Finder extensions.
And over here in Bitbucket, this Mercurial Finder Integration project is relatively new, but someone is in the process of trying to provide the Mercurial functionality as a Finder integration. So we've looked at the four different ways that you can interact within your Version Control software, there is the command line, there is stand-alone GUI tools, there is IDE integration, and finally there is shell integration that allows you to add context menus to the Macintosh Finder or the Windows Explorer.
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.