SCMS Version Branching Notification to Avoid Merge Conflicts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software configuration management systems (SCMS) face challenges in managing version branching and merge operations, particularly when users need to check out files that have been modified by others, as this can lead to complex merge operations and conflicts, especially when the difficulty of merging versions is high or when later versions introduce changes that simplify further work.

Innovation Solution

The system implements a method to notify users of successor versions within a predetermined distance in the SCMS graph, allowing users to decide whether to proceed with the check-out operation, thereby avoiding potential merge conflicts by opting to accept the latest version or wait for it to become available through normal accept and deliver operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If users check out files that have been modified by others, then users can work independently on their own versions, but merge operations become complex and time-consuming

Engineering Contradiction:
Improveindependent developmentVSAvoidmerge operation time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary detection before check-out to identify if successor versions exist within the notification distance. This advance information allows users to make informed decisions about whether to proceed with check-out, potentially avoiding future merge conflicts before they occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides feedback to users by notifying them when successor versions exist within the predetermined distance in the SCMS graph. This feedback mechanism enables users to adjust their development workflow accordingly, either by waiting for successor versions or by proceeding with awareness of potential merge requirements.

Inventive Principle:
Principle #23Feedback

2Reliability

If the system notifies users of successor versions within predetermined distance, then users can avoid merge conflicts, but the system complexity increases

Engineering Contradiction:
Improvemerge conflict avoidanceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system introduces a configurable parameter - the notification distance threshold in the SCMS graph. This parameter can be adjusted to balance between notification frequency and system complexity. By changing this parameter, the system adapts to different organizational needs and graph structures without fundamental redesign.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The notification mechanism acts as an intermediary between the SCMS graph structure and user decision-making. Rather than directly preventing merge conflicts or forcing users to check specific conditions, the system provides intermediate information that enables users to make informed decisions, simplifying the overall system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If users are notified of later versions, then they can benefit from simplifying changes, but the check-out process becomes more complex

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidcheck-out process simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs a partial search of the SCMS graph, limited to nodes within the predetermined notification distance, rather than searching the entire graph. This partial action provides sufficient information for most users without the excessive complexity of a complete graph traversal, balancing productivity gains with operational simplicity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9983868B2Selective notifications according to merge distance for software version branches within a software configuration management system
Publication Date: 2018.05.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9983868B2 patent drawing
  • US9983868B2 patent drawing
  • US9983868B2 patent drawing

AI summary

A computer-implemented method of controlling version branching within a software configuration management system (SCMS) can include, responsive to a user initiating a check-out operation of a file within the SCMS, identifying the file and a workspace of the user and searching nodes of the repositories of the SCMS for a successor version of the file. When a successor version of the file is located within a node that is within a predetermined distance of the workspace of the user, a notification that the successor version of the file is within the predetermined distance of the workspace of the user can be output. When a successor version of the file is not located within a node within a predetermined distance of the workspace of the user, the file can be checked-out to the workspace of the user.