Code Branch Synchronization via Hierarchical Propagation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, managing and synchronizing multiple code branches independently developed by different teams leads to conflicts and inefficiencies, as changes on parent branches are not regularly merged into child branches, resulting in the need for intensive conflict resolution when merging is finally performed.

Innovation Solution

A system for synchronizing code branches automatically, using metadata to define relationships and perform periodic or event-based synchronizations, ensuring that parent branches are in sync before merging into child branches, reducing conflicts through a top-down approach and conflict-resolution rules.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple code branches are developed independently by different teams, then development productivity is improved through parallel work, but conflict complexity increases when merging branches

Engineering Contradiction:
Improvedevelopment productivityVSAvoidconflict complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary synchronization actions by automatically detecting changes in parent branches and propagating them to child branches before merging occurs. This preliminary propagation of changes reduces the complexity of conflicts that would otherwise arise during manual merging, while preserving the ability of multiple teams to develop independently in parallel.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If manual merging of parent branches into child branches is performed, then branch synchronization is achieved, but time loss increases due to intensive conflict resolution

Engineering Contradiction:
Improvebranch synchronizationVSAvoidtime loss
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements self-service automation where the branch synchronization process occurs automatically without requiring manual intervention. The system monitors parent branches for changes, determines the hierarchical relationships between branches, and propagates changes to child branches autonomously, eliminating the time-consuming manual conflict resolution process while maintaining reliable branch synchronization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system incorporates feedback mechanisms by continuously monitoring changes in parent branches and using this information to trigger automatic synchronization actions. The system detects when changes occur and uses this feedback to initiate the propagation process, ensuring that child branches remain synchronized with their parents without requiring manual oversight or conflict resolution.

Inventive Principle:
Principle #23Feedback

3Object-generated harmful factors

If changes are propagated regularly through all branches, then conflict number is reduced, but system complexity increases due to automated synchronization processes

Engineering Contradiction:
Improveconflict numberVSAvoidsystem complexity
Core Design Contradiction:
Object-generated harmful factorsVSDevice complexity

Solution Approach 1:

The system segments the branch synchronization process into discrete, manageable components: change detection in parent branches, hierarchical relationship determination, and change propagation to child branches. This segmentation allows the automated synchronization to reduce conflict numbers while keeping system complexity manageable by breaking down the complex task into simpler, automated sub-tasks that can be executed independently.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10789070B2Synchronizing a set of code branches
Publication Date: 2020.09.29 ORACLE INT CORP
  • US10789070B2 patent drawing
  • US10789070B2 patent drawing
  • US10789070B2 patent drawing

AI summary

Techniques for synchronizing a set of code branches are disclosed. A synchronization process is triggered by an event and/or a schedule. The synchronization process includes traversing each code branch, such that parent branches of a particular branch are “in sync” prior to being merged into the particular branch. In an embodiment, a hierarchical order for a set of branches is determined. The branch represented by the top node of the hierarchical order does not have any parents. A branch that is a child of the branch represented by the top node is in the second level of the hierarchical order. The branch in the second level is updated by incorporating the current state of the branch represented by the top node. Thereafter, each branch is iteratively updated by incorporating the current state of the branch's parent branch. Hence, changes to any parent branch are propagated through all its descendant branches.