Patentable/Patents/US-11275659
US-11275659

Proactive cherry-picking to back-port commits

PublishedMarch 15, 2022
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A system includes a memory and a processor in communication with the memory. The processor builds a preliminary history list of a plurality of commits including intermediary commits and a target commit, instantiates a target file list of files modified by the target commit, and instantiates an intermediary file list for each intermediary commit. Additionally, the processor classifies each intermediary commit as an intersecting commit or an empty commit. Responsive to classifying a respective intermediary commit as an empty commit, the processor removes the respective intermediary commit from the preliminary history list to create a candidate history list. Responsive to classifying a respective intermediary commit as an intersecting commit, the processor retains the respective intermediary commit in the candidate history list. Additionally, the processor joins the respective intermediary file list with the target file list and creates a finalized history list.

Patent Claims
17 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method comprising: building a preliminary history list of a plurality of commits including one or more intermediary commits and a target commit; instantiating a target file list of one or more files modified by the target commit; instantiating an intermediary file list for each intermediary commit; classifying each intermediary commit as one of an intersecting commit and an empty commit; responsive to classifying a respective intermediary commit as an empty commit, removing the respective intermediary commit from the preliminary history list to create a candidate history list; responsive to classifying a respective intermediary commit as an intersecting commit, retaining the respective intermediary commit in the candidate history list and joining the respective intermediary file list with the target file list; and creating a finalized history list by: traversing the candidate history list from an oldest commit to a newest commit; selecting a candidate commit from the commits in the candidate history list; removing the candidate commit from the history list and create a copy history list; traversing the copy history list and detect whether a failure occurs; responsive to a failure occurring, retain the candidate commit in the candidate history list to create the finalized history list; and responsive to a successful traversal of the copy history list, removing the candidate commit from the candidate history list.

Plain English translation pending...
Claim 2

Original Legal Text

2. The method of claim 1 , further comprising resolving merge conflicts for each commit in the history list.

Plain English Translation

A system and method for managing version control in software development addresses the challenge of tracking and resolving changes across multiple commits in a code repository. The method involves generating a history list of commits, where each commit represents a snapshot of the codebase at a specific point in time. The system then analyzes the history list to identify conflicts that arise when changes from different commits overlap or contradict each other. To resolve these conflicts, the system applies automated conflict resolution techniques, such as comparing file versions, merging changes, and applying predefined rules to determine the correct version of the code. The method ensures that the final merged codebase is consistent and free of conflicts, improving collaboration and reducing errors in software development. The system may also include a user interface for manual conflict resolution when automated methods are insufficient. This approach enhances the efficiency of version control by automating conflict detection and resolution, allowing developers to focus on coding rather than manual conflict management.

Claim 3

Original Legal Text

3. The method of claim 2 , wherein resolving merge conflicts includes applying a patch and saving a reference to the patch commit hash.

Plain English Translation

This invention relates to version control systems, specifically addressing the problem of managing merge conflicts in collaborative software development. When multiple developers modify the same codebase, conflicts can arise during merging, requiring manual resolution. The invention provides an automated approach to resolving such conflicts by applying a patch and recording a reference to the patch commit hash. This ensures traceability and reproducibility of conflict resolutions. The method involves detecting conflicts during a merge operation, identifying the conflicting changes, and applying a predefined patch to resolve them. The patch is stored in a version control repository, and its commit hash is saved as a reference, allowing developers to track and verify the resolution process. This approach improves efficiency by reducing manual intervention and enhances reliability by maintaining a clear audit trail of conflict resolutions. The invention is particularly useful in large-scale collaborative projects where frequent merges and complex conflicts are common. By automating conflict resolution and documenting the process, the system ensures consistency and reduces the risk of errors in the merged codebase.

Claim 4

Original Legal Text

4. The method of claim 1 , wherein the intermediary file list is a list of each file modified by a respective intermediary commit.

Plain English Translation

A system and method for tracking file modifications in a version control system addresses the challenge of efficiently identifying and managing changes across multiple commits. The method involves generating an intermediary file list that records each file modified by a respective intermediary commit, allowing for precise tracking of modifications at each stage of development. This intermediary file list is used to determine the impact of changes, resolve conflicts, and maintain a clear history of modifications. The method further includes analyzing the intermediary file list to identify dependencies between files and commits, ensuring that changes are propagated correctly and conflicts are minimized. By maintaining a detailed record of file modifications at each commit, the system enables developers to trace the evolution of files over time, facilitating collaboration and reducing errors in version control workflows. The approach enhances transparency and accuracy in tracking changes, improving the reliability of version control systems in software development environments.

Claim 5

Original Legal Text

5. The method of claim 1 , further comprising applying a patch prior to creating the copy history list.

Plain English Translation

A system and method for managing data integrity in a storage environment involves creating a copy history list to track changes to data over time. The method includes applying a patch to the data before generating the copy history list. The patch may correct errors, update software, or modify data structures to ensure consistency. The copy history list records snapshots or versions of the data, allowing for rollback, recovery, or analysis of changes. The patch application ensures that the data is in a known, valid state before tracking begins, improving the reliability of the copy history. This approach is useful in systems where data integrity is critical, such as databases, file systems, or distributed storage networks. The method may also include verifying the patch application and validating the copy history list to confirm accuracy. By applying the patch before creating the copy history, the system ensures that the recorded changes reflect a consistent and error-free dataset. This technique helps prevent inconsistencies that could arise from tracking changes to corrupted or outdated data. The method is particularly valuable in environments where data must be audited, restored, or analyzed over time.

Claim 6

Original Legal Text

6. The method of claim 1 , further comprising saving a hash of a reference commit prior to building a preliminary history list.

Plain English Translation

A method for managing version control systems addresses the challenge of efficiently tracking changes in software development by maintaining an accurate and optimized commit history. The method involves generating a preliminary history list of commits, which includes a sequence of changes made to a codebase. To enhance reliability and integrity, a hash of a reference commit is saved before constructing this preliminary history list. This hash serves as a unique identifier for the reference commit, ensuring that the commit history can be verified and validated. The method may also include additional steps such as filtering or pruning the preliminary history list to remove redundant or irrelevant commits, thereby optimizing storage and improving performance. By preserving the hash of the reference commit, the method ensures that the commit history remains consistent and tamper-proof, which is critical for collaborative software development and debugging. This approach helps developers and systems accurately track changes, resolve conflicts, and maintain a reliable version history.

Claim 7

Original Legal Text

7. The method of claim 1 , further comprising: traversing the candidate history list from an oldest commit to a newest commit; selecting a candidate commit from the commits in the candidate history list; removing the candidate commit from the candidate history list and create a copy history list; traversing the copy history list; cherry-picking the target commit and detect whether a failure occurs; and responsive to a failure occurring, resetting to a reference commit and cherry-picking a candidate commit from the candidate history list.

Plain English Translation

This invention relates to software version control systems, specifically methods for selectively applying changes from a target commit in a commit history while avoiding conflicts or failures. The problem addressed is the need to efficiently and reliably apply specific changes from a commit history without disrupting the integrity of the codebase, particularly when dealing with complex or interdependent changes. The method involves traversing a candidate history list of commits from the oldest to the newest. A candidate commit is selected from this list, removed, and a copy of the remaining commits is created. The copy history list is then traversed, and the target commit is cherry-picked (i.e., selectively applied) while monitoring for failures. If a failure occurs during this process, the system resets to a reference commit and repeats the cherry-picking process with another candidate commit from the original list. This iterative approach ensures that only valid, conflict-free changes are applied, improving the reliability of selective commit application in version control systems. The method is particularly useful in scenarios where partial or conditional application of changes is required, such as in bug fixes or feature integration.

Claim 8

Original Legal Text

8. A system comprising: a memory; and a processor in communication with the memory and configured to: build a preliminary history list of a plurality of commits including one or more intermediary commits and a target commit, instantiate a target file list of one or more files modified by the target commit, instantiate an intermediary file list for each intermediary commit, classify each intermediary commit as one of an intersecting commit and an empty commit, responsive to classifying a respective intermediary commit as an empty commit, remove the respective intermediary commit from the preliminary history list to create a candidate history list, responsive to classifying a respective intermediary commit as an intersecting commit, retain the respective intermediary commit in the candidate history list, join the respective intermediary file list with the target file list, and create a finalized history list by: traversing the candidate history list from an oldest commit to a newest commit; selecting a candidate commit from the commits in the candidate history list; removing the candidate commit from the candidate history list and create a copy history list; traversing the copy history list and detect whether a failure occurs; responsive to a failure occurring, retain the candidate commit in the candidate history list to create the finalized history list; and responsive to a successful traversal of the copy history list, removing the candidate commit from the candidate history list in the finalized history list.

Plain English Translation

The system is designed for analyzing commit histories in version control systems to identify relevant changes leading to a target commit. The problem addressed is efficiently reconstructing a meaningful history of file modifications while excluding irrelevant or redundant commits that do not contribute to the target state. The system processes a preliminary list of commits, including intermediary and target commits, to filter and refine the history. The system first builds a preliminary history list containing multiple commits, including intermediary commits and a target commit. It then creates a target file list of files modified by the target commit and an intermediary file list for each intermediary commit. Each intermediary commit is classified as either an intersecting commit (modifying files also modified by the target commit) or an empty commit (not intersecting with the target). Empty commits are removed, while intersecting commits are retained and their file lists are merged with the target file list, forming a candidate history list. The system then finalizes the history by traversing the candidate list from oldest to newest. For each commit, it temporarily removes the commit and checks if the remaining history can be traversed without errors. If errors occur, the commit is retained; otherwise, it is removed. This iterative process ensures only relevant commits are included in the finalized history list, providing an optimized and accurate representation of changes leading to the target commit.

Claim 9

Original Legal Text

9. The system of claim 8 , wherein the processor is further configured to resolve a merge conflict for at least one commit in the preliminary history list.

Plain English Translation

A system for managing version control in software development resolves conflicts that arise when multiple developers modify the same codebase. The system includes a processor that generates a preliminary history list of commits, representing changes made to the codebase over time. The processor is configured to detect and resolve merge conflicts that occur when integrating changes from different branches or developers. Conflict resolution involves analyzing conflicting changes, determining the correct version of the code, and applying the resolution to the preliminary history list. This ensures a coherent and conflict-free history of changes, allowing seamless collaboration and maintaining code integrity. The system may also include a storage device for storing the preliminary history list and a display for visualizing the resolved conflicts. By automating conflict resolution, the system reduces manual effort, minimizes errors, and accelerates the development process.

Claim 10

Original Legal Text

10. The system of claim 9 , wherein the processor is configured to apply a patch to resolve the merge conflict prior to creating the finalized history list.

Plain English Translation

A system for managing version control in software development resolves conflicts that arise when multiple developers modify the same codebase. The system identifies merge conflicts during the integration of changes from different branches or repositories. To address these conflicts, the system includes a processor that applies a patch to resolve the conflict before finalizing the history of changes. The patch may involve automated conflict resolution techniques, such as selecting one version over another, combining changes, or prompting user intervention. Once the conflict is resolved, the system generates a finalized history list that accurately reflects the merged state of the codebase. This ensures that the version control system maintains a coherent and conflict-free record of changes, improving collaboration and reducing errors in software development workflows. The system may also include additional features, such as conflict detection, user notifications, and integration with existing version control tools, to enhance its functionality. By automating conflict resolution, the system streamlines the development process and minimizes disruptions caused by conflicting changes.

Claim 11

Original Legal Text

11. The system of claim 8 , wherein the intermediary file list is a list of each file modified by a respective intermediary commit.

Plain English Translation

A system for tracking file modifications in a version control system generates an intermediary file list that records each file modified by a respective intermediary commit. This intermediary file list is used to identify changes made during incremental updates or intermediate stages of a development process. The system captures modifications at each commit point, allowing for detailed tracking of file changes over time. By maintaining a record of modified files for each intermediary commit, the system enables precise analysis of incremental changes, which can be useful for debugging, code review, or rollback operations. The intermediary file list may be stored in a database or log file and can be accessed to reconstruct the state of files at any given commit point. This approach improves transparency and traceability in version control systems by providing a clear record of file modifications at each stage of development. The system may also include features for comparing file states between commits or generating reports on file changes over time. This solution addresses the challenge of tracking incremental changes in collaborative development environments where multiple contributors may modify files in parallel.

Claim 12

Original Legal Text

12. The system of claim 8 , wherein the processor is further configured to apply a patch prior to creating the copy history list.

Plain English Translation

A system for managing software updates includes a processor that applies a patch to a software application before generating a copy history list. The system operates in the domain of software maintenance and version control, addressing the challenge of efficiently tracking changes and ensuring system stability during updates. The processor first applies a patch to the software, which may include bug fixes, security updates, or feature enhancements. After applying the patch, the system creates a copy history list, which records the sequence of changes made to the software, including the applied patch. This history list enables users to track modifications, revert to previous versions if needed, and maintain a clear audit trail of updates. The system may also include a storage device for storing the copy history list and a display for presenting the list to users. The processor may further compare the copy history list with a baseline version to identify discrepancies or conflicts. This approach ensures that software updates are applied systematically, reducing the risk of errors and improving maintainability. The system is particularly useful in environments where software integrity and traceability are critical, such as enterprise systems or regulated industries.

Claim 13

Original Legal Text

13. The system of claim 8 , wherein the processor is further configured to save a hash of a reference commit prior to building a preliminary history list.

Plain English Translation

A system for managing version control in software development processes addresses the challenge of efficiently tracking changes and maintaining integrity in collaborative coding environments. The system includes a processor that generates a preliminary history list by analyzing commit data from a version control repository. This list captures the sequence of changes made to the codebase, including modifications, additions, and deletions. To ensure data integrity and enable efficient comparison, the processor computes a hash value for a reference commit before constructing the preliminary history list. The hash serves as a unique identifier for the commit, allowing the system to verify its authenticity and detect any unauthorized alterations. This pre-hashing step enhances the reliability of the history list by providing a cryptographic anchor point for subsequent operations. The system may also include a memory module to store the hash and other relevant data, ensuring that the reference commit can be quickly accessed and validated. By integrating this hashing mechanism, the system improves the accuracy and security of version tracking, reducing the risk of errors or tampering in collaborative development workflows. The solution is particularly useful in environments where multiple developers contribute to a shared codebase, requiring robust mechanisms to maintain consistency and traceability.

Claim 14

Original Legal Text

14. The system of claim 13 , wherein the processor is configured to: traverse the candidate history list from an oldest commit to a newest commit, select a candidate commit from the commits in the candidate history list, remove the candidate commit from the candidate history list and create a copy history list, traverse the copy history list, cherry-pick the target commit and detect whether a failure occurs, and responsive to a failure occurring, reset to the reference commit and cherry-pick a candidate commit from the candidate history list.

Plain English Translation

The system relates to software version control, specifically optimizing the process of identifying and applying changes from a target commit in a code repository while minimizing disruptions. The problem addressed is the inefficiency and potential instability when integrating changes from a target commit into a codebase, particularly when conflicts or failures occur during the process. The system includes a processor configured to manage a candidate history list of commits, starting from the oldest to the newest. The processor selects a candidate commit from this list, removes it, and creates a copy of the remaining commits. It then traverses this copy history list, cherry-picking the target commit to apply its changes. If a failure occurs during this process, the system resets to a reference commit and repeats the cherry-picking with the next candidate commit from the original list. This iterative approach ensures that only compatible changes are applied, reducing the risk of conflicts or errors. The system efficiently isolates problematic commits, allowing for targeted debugging and resolution. This method improves the reliability of integrating changes in software development workflows.

Claim 15

Original Legal Text

15. The system of claim 14 , wherein the processor is configured to apply a patch while traversing the copy history list.

Plain English Translation

A system for managing data integrity in a storage environment addresses the challenge of efficiently applying patches to data while maintaining a reliable copy history. The system includes a processor that traverses a copy history list, which records prior versions of data, to identify and apply patches. The processor is configured to apply these patches during the traversal process, ensuring that modifications are integrated into the correct data versions without disrupting the historical record. This approach improves patch management by reducing the need for separate patch application steps, streamlining the process and minimizing potential errors. The system may also include a storage device for storing the data and its versions, as well as a memory for temporarily holding the copy history list and patch data. The processor's ability to apply patches while traversing the list enhances efficiency and ensures that the data remains consistent across versions. This method is particularly useful in environments where maintaining an accurate and up-to-date data history is critical, such as in backup systems, version control, or distributed storage solutions. The system's design ensures that patches are applied in a controlled manner, preserving the integrity of the data while allowing for seamless updates.

Claim 16

Original Legal Text

16. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps comprising: building a preliminary history list of a plurality of commits including one or more intermediary commits and a target commit; creating a candidate history list with a first subset of intermediary commits from the preliminary history list by: instantiating a target file list of one or more files modified by the target commit; instantiating an intermediary file list for each intermediary commit; classifying each intermediary commit as one of an intersecting commit and an empty commit; responsive to classifying a respective intermediary commit as an empty commit, removing the respective intermediary commit from the preliminary history list to create the candidate history list; and responsive to classifying a respective intermediary commit as an intersecting commit, retaining the respective intermediary commit in the candidate history list; creating a finalized history list with a second subset of intermediary commits from the candidate history list by: traversing the candidate history list from an oldest commit to a newest commit; selecting a candidate commit from the commits in the candidate history list; removing the candidate commit from the history list and create a copy history list; traversing the copy history list and detect whether a failure occurs; responsive to a failure occurring, retain the candidate commit in the candidate history list to create the finalized history list; and responsive to a successful traversal of the copy history list, removing the candidate commit from the candidate history list; and executing an updated release branch with commits from the finalized history list, wherein the finalized history list includes the target commit, and wherein the finalized history list includes less commits than the preliminary history list.

Plain English Translation

This invention relates to software version control systems, specifically methods for optimizing commit history traversal to reduce build failures during release branch creation. The problem addressed is the inefficiency and instability of traditional approaches that include all intermediary commits, leading to unnecessary build failures and wasted computational resources. The system builds a preliminary history list containing multiple commits, including intermediary commits and a target commit. It then creates a candidate history list by filtering out "empty commits" (those that do not modify any files in the target file list) and retaining "intersecting commits" (those that modify at least one file in the target file list). The system further refines this list by traversing the candidate history list from oldest to newest, testing each commit's impact on the build process. If a commit causes a failure, it is retained in the finalized history list; if the traversal succeeds, the commit is removed. The finalized history list, which includes the target commit but fewer commits than the preliminary list, is then used to execute an updated release branch. This approach minimizes build failures and optimizes the commit history for efficient release management.

Claim 17

Original Legal Text

17. The non-transitory computer readable medium of claim 16 , wherein retaining the respective intermediary commit in the candidate history list comprises joining the respective intermediary file list with the target file list prior to classifying the next respective intermediary commit.

Plain English Translation

The invention relates to a system for managing file version histories in a distributed version control system, specifically addressing the challenge of efficiently tracking and classifying file changes across multiple commits. The system improves upon traditional version control by dynamically analyzing intermediary commits to determine their relevance to a target file list. When evaluating a candidate history list of commits, the system retains each intermediary commit by merging its associated file list with the target file list before proceeding to classify the next commit in the sequence. This merging step ensures that file changes are accurately propagated and evaluated in context, preventing misclassification due to isolated commit analysis. The process involves generating intermediary file lists for each commit, comparing these lists with the target file list, and iteratively refining the classification based on cumulative file changes. This approach enhances the accuracy of version history analysis, particularly in large-scale repositories where commit dependencies and file relationships are complex. The system is implemented via a non-transitory computer-readable medium containing executable instructions for performing these operations, ensuring efficient and scalable version control management.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 12, 2019

Publication Date

March 15, 2022

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Proactive cherry-picking to back-port commits” (US-11275659). https://patentable.app/patents/US-11275659

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-11275659. See llms.txt for full attribution policy.

Proactive cherry-picking to back-port commits