4. Configuration Management¶ 4.1. Configuration Management Basics 4.1.1. History / Chronological evolution 4.1.2. Version / Revision management 4.1.3. Collaborate 4.1.4. Compare / Find Differences 4.2. Git 4.2.1. What is GIT? 4.2.2. Getting Started with Git 4.2.2.1. Installing Git 4.2.2.2. Setting up your username 4.2.2.3. Your first Git Managed work 4.2.3. Set Prompt 4.2.4. Git Aliases 4.2.4.1. Git Status 4.2.5. Common Online (Remote) Operations with Git 4.2.5.1. Get Changes and overwrite local work-area 4.2.5.2. Get Changes but don’t modify local work-area 4.2.5.3. Check if work-area is latest 4.2.5.4. VS Code 4.2.6. Further Reading for Git 4.3. Subversion 4.3.1. Check if work-area is latest 4.3.2. Set Prompt 4.4. Versioning 4.4.1. What is versioning? 4.4.2. Informal 4.4.2.1. Just Increment 4.4.2.2. Using Current Date 4.4.2.3. What if you have to release more than once in a day? 4.4.2.4. Much more detailed versioning, Date and Time 4.4.3. Formal 4.4.3.1. Major version: Zero and Non-Zero 4.4.3.2. Compatibility 4.4.3.3. Making major version 1 4.4.3.4. Making incompatible changes 4.4.3.5. Further Reading 4.4.4. Version Vs Revision 4.4.5. Names Vs Numbers 4.4.5.1. Debian Releases 4.4.5.2. Ubuntu Releases 4.4.6. Making Versioning Consistent 4.4.6.1. Capturing Git Information 4.4.6.2. Helper Script: doNewVersion.py 4.5. CM General 4.5.1. Commit Messages / Change Messages 4.5.1.1. Bad Messages 4.5.1.2. Git Convention