Product SiteDocumentation Site

Chapter 4. Getting the Code

Greg DeKoenigsberg

Red Hat Community Architecture

Mel Chua

Red Hat Community Architecture
4.1. Introduction
4.2. A Brief Introduction to FOSS Source Control Management Tools
4.2.1. Exercise - Install Subversion on Your System
4.3. Getting Help With Subversion
4.4. Getting Started: checkout
4.4.1. Exercise - Initial Checkout of the Sample Codebase
4.5. The Basic Subversion Work Cycle
4.5.1. Update Your Working Copy
4.6. Make Changes to Your Working Copy
4.6.1. Exercise - Create a Biography File and Add It to the Local Repository
4.7. Examine Your Changes
4.8. Undoing Working Changes
4.9. Resolve Conflicts (Merging Changes of Others)
4.10. Copying a File Onto Your Working File
4.11. Commit Your Changes
4.11.1. Exercise - Commit Code to the Repository
4.12. Supplemental Reading
4.13. Supplemental Exercises

4.1. Introduction

This is a conversation that you never want to hear.
"Oh no! The frobnitz is broken!"
"But it was working last week."
"I don't know what happened - was it the changes I made to the gorblewhonker?"
"Wait, I was putting that function in the gorblewhonker. I told you after class on Thursday, remember?"
"Shoot. Do you have last week's version with the working frobnitz? What's the difference?"
"Maybe. I don't know. Does this mean we have to redo all the improvements we've made to the blooglebox since then?"
"Argh."
There are tools that allow you to avoid these kinds of conversations.
Have you ever created a folder that looked something like this?
mycode-1.py
mycode-2.py
mycode-2-with-rachel's-changes.py
mycode-working.py
mycode-LATEST.py
If so, you have used version control. According to Wikipedia version control "is the management of changes to documents, programs, and other information stored as computer files."
A system that manages version control for software development is called a source code management system, or an SCM for short. In this chapter, you will learn the basic use of source control management.