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.
Once you've got your files in, and you can get your files out, the typical workflow when using any Version Control System looks like this in your repository. At Time 1, you can see that there's a file in your repository that contains A, B, and C. Let's say you check it out and then you delete B and you add D. Now when you save your files back into the repository, use a command that's called commit, check in, or update. When you command the Version Control System to save your updated file, it will ask you for a short description of the changes you've made.
This is oftentimes called a commit message, and this is a crucial part of the history of tracking information. The system will store the differences between the two different versions of the file, and you supply the reason. In some systems you can supply a single line, and in some systems you can actually supply not only a single line which is used in short displays, you can also provide an entire document that describes what it is. Reference bugs that are fixed by this have hyperlinks to websites that have appropriate references and so forth.
Once you've added a file to Version Control and made a change and checked it back in, your Version Control System can now show you the history of that file. So, we can see here we have the file here at T1 with our initial commit, then we have two versions of file, and we add D, and now three versions of the file when we deleted B, and four versions of the file when we add E. Each item in the history will show you not only what is changed between one version and the other, it will also show you who made the changes, and what that person said about those changes. In this case, initial commit, adding D, deleting B, and so forth.
It's important when creating commit or check in messages to be as descriptive as possible, because you may come back later and your memory may be a little fuzzy as to what you changed, or when you're working on a team, someone else may be reading your commit message and want to learn to understand what you did. Many systems allow you to create a one-line short commit message, and in certain systems, you can also create a longer descriptive message in which you can be more detailed in terms of what you've actually changed. You can add hyperlinks, you can add references to documents, you can add references to bug numbers.
When you're using the Command Line tools, you can only add the short version, or if you leave the short version text off, the Command Line version of the tools will open up in the editor to allow you to put in both the short version, and the subsequent long version on subsequent lines. If you think back to our demo when I typed in git commit -a - and then put that string in quotes, if you leave the string off, it will open up in editor, showing you the information about what files have changed, and allowing you to enter in both the short and the long version, keeping track of the changes, automatically backing up your files, recording why something was changed, and who changed it is the essence of Version Control.
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.