Code Branch Comparison Graph for Merge Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development organizations face challenges in tracking changes between the main code repository and checked out branches, especially in large teams where developers work on separate branches, leading to potential difficulties during code merging.

Innovation Solution

A comparison graph system that determines and displays commits unique to each code branch, using a code branch separator and user interface determiner to visualize differences between branches, facilitating the identification of unmerged changes and ensuring smooth merging processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers work on separate checked out branches independently, then individual development efficiency is improved, but tracking changes in the main code repository becomes difficult

Engineering Contradiction:
Improveindividual development efficiencyVSAvoidvisibility of main repository changes
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The comparison graph provides continuous feedback to developers about changes in the main repository by visually displaying commits that have been made to other branches. This allows developers working on separate branches to see what changes have occurred in the main code repository without needing to constantly check or merge, thus maintaining individual development efficiency while preventing information loss.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The comparison graph acts as an intermediary between separate development branches and the main repository. It mediates the information flow by extracting and displaying only the relevant commit information from the main repository, allowing developers to track changes without directly interacting with the main branch, thus preserving both independent development and visibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple developers work on separate branches simultaneously, then overall team productivity increases, but merge conflicts become more difficult to track and manage

Engineering Contradiction:
Improveteam development throughputVSAvoidcomplexity of merge conflict tracking
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The comparison graph segments the complex information about multiple branch differences into individual, manageable commits. Each commit is displayed separately with clear visual indicators, allowing developers to understand the cumulative effect of multiple changes without being overwhelmed by the complexity of tracking all simultaneous branch modifications. This segmentation makes merge conflict tracking feasible even with multiple developers working independently.

Inventive Principle:
Principle #1Segmentation

3Reliability

If developers frequently check the main repository for updates, then awareness of changes is improved, but development time is lost due to context switching

Engineering Contradiction:
Improveawareness of repository changesVSAvoiddevelopment time lost to context switching
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The comparison graph performs preliminary action by proactively displaying changes from the main repository before developers need to check or merge. The system automatically monitors and presents relevant commit information, eliminating the need for developers to repeatedly switch contexts to check for updates. This preliminary presentation of information maintains reliability while preserving development time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9557968B1Comparison graph
Publication Date: 2017.01.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9557968B1 patent drawing
  • US9557968B1 patent drawing
  • US9557968B1 patent drawing

AI summary

A system for comparing code branches comprises a code branch separator for determining a first set of commits in a first code branch that are not common to a second code branch, and determining a second set of commits in the second code branch that are not common to the first code branch; and a user interface determiner for determining a display of the first set of commits and the second set of commits.