Automated Software Merge System for Defect Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manual merging of changed software elements across multiple projects is labor-intensive and inefficient, especially when dealing with a large volume of changes, as developers need to manually identify and merge elements across different software projects.

Innovation Solution

An automated system and method for merging changed elements in a software development environment, which involves obtaining a list of changed elements associated with defects and attempting an automated merge with their corresponding targets, with the option for user intervention in case of conflicts, and the ability to re-attempt unmerged elements in a subsequent pass.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual merging of changed elements is performed, then merging accuracy and user control are maintained, but user effort and time consumption increase significantly

Engineering Contradiction:
Improvemerging accuracyVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs automated merging operations using merge bots that independently retrieve changed elements, attempt merges with targets, and handle conflicts without requiring manual user intervention for each element, thereby reducing time consumption while maintaining merging accuracy through systematic processing

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A defect record serves as an intermediary data structure that automatically tracks and manages lists of changed elements and their corresponding targets, coordinating the merging process between multiple software projects without requiring direct user involvement in each merge operation

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If automated merging is implemented, then user effort and time consumption are reduced, but handling of complex conflicts and edge cases becomes more difficult

Engineering Contradiction:
Improvemerging efficiencyVSAvoidconflict handling
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs a first pass of automated merging for all changed elements, then performs a second pass specifically targeting elements that failed to merge in the first pass, applying the same automated process iteratively to handle complex conflicts that require multiple attempts

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system uses defect records to track and store information about merging status, conflicts, and results, providing feedback mechanisms that allow the automated process to learn from previous merge attempts and adjust its approach in subsequent passes

Inventive Principle:
Principle #23Feedback

3Reliability

If multiple passes of automated merging are performed, then completeness of merging is improved, but system complexity and processing time increase

Engineering Contradiction:
Improvemerging completenessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The automated merging process is segmented into distinct passes: a first pass that processes all changed elements, and a second pass that specifically targets elements that failed in the first pass, with each pass being a simplified version of the merging logic that can be independently executed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary automated merging attempts for all changed elements before requiring any manual user intervention, and preliminarily identifies elements that need second-pass processing, thereby simplifying the overall system by handling routine cases automatically before complex cases require attention

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9940108B2Automated merging in a software development environment
Publication Date: 2018.04.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9940108B2 patent drawing
  • US9940108B2 patent drawing
  • US9940108B2 patent drawing

AI summary

A system and method for merging changed elements in a software development environment is provided, in which the software development environment is provided with a set of at least one defect, comprising at least one changed element, associated with a software project that comprises a plurality of elements, the software project comprising a plurality of elements. The environment first obtains a list of changed elements in a defect record, for example from a defect database, and for each changed element in the list, attempts an automated merge of the changed element with a corresponding target. If any attempt fails, the environment may re-attempt the merge for any failed attempt, and may invoke a user interface for resolving the merge manually.