Source Code File Recommendation Notification for Version Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed version control systems, users often forget to update corresponding source code files when making changes, leading to errors during compilation or runtime due to incomplete modifications.

Innovation Solution

A computing device with a processor configured to execute a distributed version control system identifies additional source code files based on a recommendation ruleset derived from training pull requests, providing a notification to users about necessary updates through a graphical user interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If users manually update source code files in distributed version control systems, then the simplicity and flexibility of manual control is maintained, but errors occur during compilation or runtime due to incomplete modifications

Engineering Contradiction:
Improvecompleteness of source code updatesVSAvoidcomplexity of update management
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary identification of affected source code files before the user submits the pull request. By analyzing the pull request content and using association rules from training data, the system proactively determines which additional files need to be updated, allowing users to review and confirm the complete set of changes before submission, thereby preventing compilation or runtime errors.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the system automatically identifies all affected source code files, then update completeness is improved, but the system complexity increases due to training pull requests and association rules

Engineering Contradiction:
Improveaccuracy of file recommendationVSAvoidcomplexity of recommendation system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary training by collecting historical pull request data and generating association rules that capture common patterns of file dependencies. This training phase is executed in advance, allowing the system to build a knowledge base of file relationships that can be efficiently applied during runtime without requiring complex real-time analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses association rules derived from training pull requests as simplified representations of complex file dependency relationships. Instead of modeling all possible file interactions, the system copies successful patterns from historical data into actionable recommendation rules, reducing the complexity of the recommendation engine while maintaining high accuracy.

Inventive Principle:
Principle #26Copying

3Reliability

If the system provides comprehensive file update recommendations, then compilation and runtime errors are reduced, but the time required to process pull requests increases

Engineering Contradiction:
Improveerror prevention capabilityVSAvoidpull request processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies association rules to identify a set of potentially affected files, then presents this superset to the user for review. This approach may include some files that ultimately don't need changes (excessive action), but ensures that all necessary files are captured. The user can quickly review and remove false positives, which is faster than comprehensive static analysis while maintaining high error prevention capability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10831471B2Source code file recommendation notification
Publication Date: 2020.11.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10831471B2 patent drawing
  • US10831471B2 patent drawing
  • US10831471B2 patent drawing

AI summary

A computing device is provided, including a non-volatile storage device and a processor configured to execute a distributed version control system. The processor may, via the distributed version control system, receive a pull request to apply a first set of one or more source code files to a project database. In response to receiving the pull request, the processor may identify a second set of one or more source code files based at least in part on a recommendation ruleset including one or more association rules identified for a plurality of training pull requests applied to a training project database. The recommendation ruleset may be determined based at least in part on a respective last iteration of each training pull request. The processor may output a source code file recommendation notification including an indication of each source code file of the second set.