Source Control


Source control is technologies that manage development of software code by tracking and merging or rejecting changes from multiple authors.

  • overall process of managing code for a software development project

Version control

Within the overall process of source control, version control is an ID system for each iteration of a software product or automation script.

  • version control numbers represent both:
    • the version
      • as made known to the customer or end user
    • internal build numbers
      • for use in the development process
  • supports the change management process for software development projects

Central Repository

Software development environments use a repository server to maintain source code.

  • e.g., Global Information Tracker (Git)
  • When a developer commits new or changed code to the repository,
    • the new source code is tagged with an updated version number
    • and the old version archived
      • allows changes to be rolled back if a problem is discovered

Branching

  • As scripts are developed and updated,
    • will be times when new features or changed functionality needs to be created and tested
  • To facilitate this,
    • changes can be made in a branch copy of source code
      • stored separately to the main or production version
    • When the branch code is ready,
      • developer issues a pull request
      • and it is tested and validated for merging back into the main branch

Conflict Identification

  • can be instances where two (or more) competing changes to code need to be integrated back into the main branch
  • conflict identification highlights these clashes and provides developers with tools to resolve them