Version Control Flashcards
Code Repositories
Where the source code (and relevant libraries) are stored
-Sensitive information and data should NEVER be committed to the repository
Git
The worlds most widely used version control system
[add more detail ASAP]
“Baselining” in Version control
Like saving a good point where everything fits and works well.
In the context of SCM, a baseline is a well-defined and documented set of software components or artifacts at a specific point in time. It represents a stable and approved version of the software.
*Similar to the concept of a snapshot for a database
Software Configuration Management (SCM)
SCM helps organize and manage different versions of your software components.
Refers to strategies and tools used to systematically manage, organize, control, and track changes to software throughout its development life cycle. The main objective of SCM is to ensure that software components and artifacts are versioned, organized, and integrated
“Versioning” in software engineering
The ability to create and manage different versions of files, allowing for tracking changes, comparing versions, and reverting to previous states
“Branching” in Software Engineering
The ability to create separate development paths (branches) to work on different features or fixes
“Merging” in Software engineering
Making a branch an official part of the main codebase
“Concurrency Control” in software engineering
Mechanisms to handle multiple developers working on the same file simultaneously, preventing conflicts and ensuring seamless collaboration.
Change Tracking
Detailed logs that record who made a change, what changes were made, and when the changes were made (commit history)
“Reversion” in version control
The ability to revert to previous versions of files or the entire project, providing a safety net in case of errors or unwanted changes
Metadata Management in version control
Storage of metadata such as authorship, timestamps, and comments associated with each change made to the files
Benefits of using a version control system
1) Backup and Recovery: A reliable backup mechanism that protects against accidental loss or corruption of files.
2) Traceability and Auditing: Clear tracking and audit trail of all changes, aiding in compliance and accountability.
3) Facilitated Collaboration: Enabling collaboration among developers and teams, even when geographically dispersed.