Automated Code Change Propagation Across Branches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for incorporating software code changes into different branches of a software code are inefficient, labor-intensive, and prone to errors, as they rely on manual tracking and oversight, leading to inconsistencies between versions.

Innovation Solution

A system and method that automatically detects changes made to a software channel, identifies relevant branches that need the change, and initiates the incorporation process, using an event tracking application, an event processing service, and a work tracking application to ensure accurate and efficient updating of all branches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual tracking methods are used to incorporate code changes into branches, then human oversight and control are maintained, but labor intensity increases and accuracy decreases

Engineering Contradiction:
Improveaccuracy of change incorporationVSAvoidefficiency of change incorporation
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system enables automatic self-service by having the code change management system itself track and incorporate changes into branches without requiring manual intervention. The event tracking application automatically detects changes, identifies affected branches, and initiates incorporation through the event processing service, eliminating the need for administrators to manually monitor and update each branch.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback mechanisms where the event tracking application continuously monitors the code repository for changes, automatically identifies which branches need updates based on branch relationships, and triggers the incorporation process. This closed-loop feedback system ensures that changes are automatically propagated to all relevant branches without manual tracking.

Inventive Principle:
Principle #23Feedback

2Extent of automation

If manual tracking is used for code changes, then system complexity remains low, but the process becomes labor-intensive and error-prone

Engineering Contradiction:
Improveautomation of change incorporationVSAvoidcomplexity of change tracking system
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The system segments the change management process into distinct functional components: the event tracking application for detecting changes, the event processing service for processing change events, and the work tracking application for managing tasks. This segmentation allows each component to handle specific aspects of automation, reducing overall system complexity while increasing automation extent.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The event processing service acts as an intermediary between the code repository and the branches that need updates. It receives change events from the event tracking application, determines which branches are affected based on branch relationships, and initiates the incorporation process, thereby mediating the complex interactions required for automated change propagation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If developers make changes to code versions undergoing deployment, then last-minute fixes can be applied, but ensuring changes are incorporated to all branches becomes cumbersome

Engineering Contradiction:
Improveflexibility in applying code changesVSAvoidtime required to incorporate changes to all branches
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically identifying all branches that need to receive a change before the actual incorporation begins. The event tracking application detects the change, the event processing service determines the affected branches based on branch relationships, and tasks are created in advance for incorporating the change to each branch, eliminating the need for manual identification and reducing time loss.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3903185B1Mechanism for automatically incorporating software code changes into proper channels
Publication Date: 2024.03.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3903185B1 patent drawingFigure 1
  • EP3903185B1 patent drawingFigure 2
  • EP3903185B1 patent drawingFigure 3A

AI summary

A method of and system for incorporating a source code change made in a first branch of a source code configuration into a second branch of the source code configuration is carried out by detecting that the change was made to the first branch, identifying the second branch as a branch of the source code configuration that does not include the change, automatically incorporating the change into the second branch, determining if the automatic incorporation of the change was successful, and notifying an individual if the automatic incorporation was unsuccessful such that manual incorporation may be performed.