Composite Program History for Version Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Version control systems face challenges in managing a history of changes to a program, particularly in hiding buggy versions that have been fixed, which can lead to negative consequences such as embarrassment and financial losses due to the presence of buggy software in the history.

Innovation Solution

A system and method for maintaining a composite history of changes to a program by generating a revised history that omits versions with bugs, allowing access to both original and revised histories to navigate forward and backward, thereby hiding buggy versions without preventing access when necessary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a version control system maintains a complete history of all changes including buggy versions, then the history is complete and accurate for debugging and analysis, but buggy versions remain visible causing embarrassment and financial losses

Engineering Contradiction:
Improvecompleteness of program historyVSAvoidnegative consequences of buggy software
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the program history into multiple parallel histories: the original complete history and one or more revised histories. Each revised history selectively omits buggy versions while preserving non-buggy versions. This segmentation allows the system to provide different history views for different purposes - complete history for debugging and revised history for public presentation, thereby resolving the contradiction between maintaining complete history and hiding harmful buggy versions.

Inventive Principle:
Principle #1Segmentation

2Object-affected harmful factors

If buggy versions are hidden from the program history, then reputation is protected and financial losses prevented, but access to buggy versions is lost when needed for debugging and analysis

Engineering Contradiction:
Improvereputation damage from buggy softwareVSAvoidaccess to buggy versions for debugging
Core Design Contradiction:
Object-affected harmful factorsVSLoss of information

Solution Approach 1:

The patent implements dynamic history selection where the system can switch between displaying the revised history (hiding buggy versions) and the original complete history (showing all versions). The interface allows users to dynamically choose which history view to access based on their current needs - using the revised history for public presentations to protect reputation, and switching to the original history when debugging or analyzing bugs is required.

Inventive Principle:
Principle #15Dynamics

3Object-affected harmful factors

If a revised history omitting buggy versions is created, then the negative impact of buggy software is minimized, but the system complexity increases due to managing multiple parallel histories

Engineering Contradiction:
Improveconsequences of buggy softwareVSAvoidcomplexity of managing program histories
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent introduces a history management system that acts as an intermediary between the version control database and the user interface. This intermediary automatically manages the creation, storage, and retrieval of multiple parallel histories based on bug information. When a bug is reported, the system automatically generates a revised history omitting the buggy version and stores it alongside the original history. The intermediary handles the complexity of managing multiple histories transparently, allowing users to access appropriate history views without manually managing the complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9298449B2Composite program history
Publication Date: 2016.03.29 RED HAT ISRAEL
  • US9298449B2 patent drawing
  • US9298449B2 patent drawing
  • US9298449B2 patent drawing

AI summary

A system and methods are disclosed for maintaining a composite history of changes to a program comprising two parallel histories. In accordance with one embodiment, a computer system identifies a first history of changes to a program, and generates a second history of changes to the program based on the first history, where the second history has a final version of the program that is identical to a final version of the program in the first history, and where the second history excludes changes to the program in the first history that introduce an error that is fixed in a subsequent change to the program in the first history, and where the second history includes all other changes to the program in the first history. The computer system then generates a third history of changes to the program that comprises the first history and the second history.