Lecture6 - Software-Construction-BSSE5
Lecture6 - Software-Construction-BSSE5
(Lecture 6)
Version control system and backup management
What is version control?
• Version control systems VCS, also known as source control, is the
practice of tracking and managing changes to software code
• VCS are sometimes known as SCM (Source Code Management) tools or
RCS (Revision Control System)
• Software tools that help software teams manage changes to source
code over time
• Help software teams work faster and smarter
• Keeps track of every modification to the code in a special kind of
database
• Git is a Distributed VCS, a category known as DVCS
Benefits of version control systems
• Helps developers move faster
• Allows software teams to preserve efficiency and agility
• A complete long-term change history of every file
• Branching and merging
• Traceability
Source code management SCM
• Used to track modifications to a source code repository
• Helps to resolve conflicts when merging updates from multiple
contributors
• To prevent loss of work due to conflict overwriting
• Tracks an entire history of changes to the code base
• Allows developers to examine and review edits
Benefits of source code
management
• Makes collaborative code development a more user friendly
experience
• Tracks all the changes to a project over time
• Offers insight and transparency into the progress of a project
• Reduces a communication overhead and increase release velocity
SCM best practices
• Commit often
• Each commit is a snapshot that the codebase can be reverted to if needed
• A group of commits can be combined into a single commit
• Ensure you're working from latest version
• Make sure to fetch the latest code before making updates
• Avoiding conflicts at merge time
• Make detailed notes
• It is important to leave descriptive explanatory commit log messages
• Explains the “why” and “what” that encompass the commits content
• Leave a trail for future contributors to review
SCM best practices
• Review changes before committing: Offers a ‘staging area’
• Use Branches
• Mechanism that allows developers to create a separate line of development
• Enable multiple developers to work in parallel on separate lines of
development
• At the end merged into the master line of development
• Agree on a Workflow
• Free form methods of contribution
• Important that teams establish shared patterns of collaboration
What is Git?
• Widely used open source version control system
• It is a Distributed Version Control System
• Git has been designed with:
• Performance
• Security
• Flexibility
• Version control
Why Git for your organization?
Git for developers
• Feature Branch Workflow
• Distributed Development
• Pull Requests
• Community
• Faster Release Cycle
Git Basics
https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet