Proactive cherry-picking to back-port commits

US11275659B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11275659-B2
Application numberUS-201916273889-A
CountryUS
Kind codeB2
Filing dateFeb 12, 2019
Priority dateFeb 12, 2019
Publication dateMar 15, 2022
Grant dateMar 15, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention is claimed as follows: 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. 2. The method of claim 1 , further comprising resolving merge conflicts for each commit in the history list. 3. The method of claim 2 , wherein resolving merge conflicts includes applying a patch and saving a reference to the patch commit hash. 4. The method of claim 1 , wherein the intermediary file list is a list of each file modified by a respective intermediary commit. 5. The method of claim 1 , further comprising applying a patch prior to creating the copy history list. 6. The method of claim 1 , further comprising saving a hash of a reference commit prior to building a preliminary history list. 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. 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. 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. 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. 11. The system of claim 8 , wherein the intermediary file list is a list of each file modified by a respective intermediary commit. 12. The system of claim 8 , wherein the processor is further configured to apply a patch prior to creating the copy history list. 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. 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. 15. The system of claim 14 , wherein the processor is configured to apply a patch while traversing the copy history list. 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. 17. Th

Assignees

Inventors

Classifications

  • in transactions (updating of structured data in databases G06F16/23) · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • Classification techniques · CPC title

  • by performing operations on the source code, e.g. via a compiler · CPC title

  • Software maintenance or management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11275659B2 cover?
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 inter…
Who is the assignee on this patent?
Red Hat Israel Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/1474. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 15 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).