24 July 2024

Scrum and Technical Practices : Version Control, Branching and Merging

Branching :

  • Creating a logical or physical copy of code within a version control system so that this copy might be changed in isolation.
  • Branching is the practice of creating isolated copies of programs or objects in development to work in parallel versions, retaining the original and working on the branch, or making different changes to each. Each copy is considered a branch; the original program from which the branch is taken is referred to as the trunk, the baseline, the mainline, or the master.
  • Branching is creating a logical or physical copy of code within a version control number so that the copy might be changed in isolation. Branching also implies the ability to later merge or integrate changes back onto the Parent branch.

Feature branching :

  • Feature Branching is an approach is to use a branch to work on a feature until it’s complete, then merge into the trunk/master Branch. Feature branches are often coupled with feature flags–”toggles” that enable or disable a feature within the product. That makes it easy to deploy code into master and control when the feature is activated, making it easy to initially deploy the code well before the feature is exposed to end-users.

Task Branching :

  • Every organization has a natural way to break down work in individual tasks inside of an issue tracker, like Jira Software. Issues then becomes the team’s central point of contact for that piece of work. Task branching, also known as issue branching, directly connects those issues with the source code. Each issue is implemented on its own branch with the issue key included in the branch name.

Merging :

  • Merging is a fundamental operation to combine and reconcile multiple changes, which results in a single collection of files containing both sets of changes.
  • Combining two or more changes into a single codebase
  • Each developer should be pulling from the main branch into their own feature branch so that they ensure they don’t go too far from the current baseline. Conflicts with the Main branch are seen when developers rebase more than needed.
  • Merging should happen often. They can do that daily, so that tasks that take more than a couple days stay in sync and merge issues are resolved while they are still small. Continuous and Frequent Merges are always recommended.

Version Control synonyms (Synonyms of the original program in source control from which branches are taken) :

  • Trunk
  • Master
  • Mainline

More informations for the Scrum PSD certification here.

Leave a Reply

Your email address will not be published. Required fields are marked *