Join Michael Lehman for an in-depth discussion in this video Using graphical user interface (GUI) tools, part of Learning Software Version Control.
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.
- Comparing centralized vs. distributed systems
- Saving changes and tracking history
- Using revert or rollback
- Working with the GUI tools
- Using IDE and shell integration
- Installing different systems
- Creating a repository
- Tagging code
- Branching and merging code
- Selecting a software version control system that's right for you