IP Library Granted Patent US 9,454,459
Granted Patent B2
US 9,454,459 · App. 14/829,826 · Granted Sep 27, 2016

Detecting merge conflicts and compilation errors in a collaborative integrated development environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,454,459
App. No.
14/829,826
Granted
Sep 27, 2016
Kind
B2
Abstract

A method, and associated computer system and computer program product, of detecting source code merge conflicts and compilation errors. Uncommitted changes associated with a source code are received periodically at each time of a sequence of times. A temporary branch corresponding to each uncommitted change associated with the source code is created. The temporary branch corresponding to each uncommitted change is merged to corresponding portions of the source code. It is ascertained that no merge conflict resulted from the merging and in response, a compilation of a merged version of the source code is performed, wherein the merged version of the source code includes the temporary branch corresponding to each uncommitted change. It is determined that no compilation error occurred from the compilation and in response, a version of a product that includes the merged version of the source code is created.

Claims (38)

1. A method of detecting source code merge conflicts and compilation errors, the method comprising:

receiving, periodically at each time of a sequence of times by one or more processors of a computer system, a plurality of uncommitted changes associated with a source code;

creating, by the one or more processors, a temporary branch corresponding to each uncommitted change associated with the source code;

merging, by the one or more processors, the temporary branch corresponding to each uncommitted change to corresponding portions of the source code;

ascertaining, by the one or more processors, that no merge conflict resulted from said merging and in response, performing a compilation, by the one or more processors, of a merged version of the source code, said merged version of the source code comprising the temporary branch corresponding to each uncommitted change; and

determining, by the one or more processors, that no compilation error occurred from the compilation and in response, creating, by the one or more processors, a version of a product that includes the merged version of the source code.

2. The method of claim 1 , said method further comprising:

after said creating the temporary branch, verifying, by the one or more processors, that each uncommitted change pertains to the corresponding temporary branch by identifying a user command that issued when said creating the corresponding temporary branch was initiated.

3. The method of claim 1 , wherein said receiving the plurality of uncommitted changes is in response to a determination that the plurality of uncommitted changes on a working copy of the source code passed a local merge and build test.

4. The method of claim 1 , wherein said receiving the plurality of uncommitted changes is in response to a determination of occurrence of a predetermined time.

5. The method of claim 1 , wherein said receiving the plurality of uncommitted changes is in response to a determination that a predetermined number of lines of code has been added to a working copy of the source code.

6. The method of claim 1 , wherein the sequence of times occur in accordance with a predetermined constant time interval between the times in the sequence.

7. The method of claim 6 , wherein the constant time interval is ninety minutes or three hours.

8. A computer program product, comprising a computer readable storage device having computer readable program code stored therein, said program code containing instructions configured to be executed by one or more processors of a computer system to implement a method of detecting source code merge conflicts and compilation errors, said method comprising:

receiving, periodically at each time of a sequence of times by the one or more processors, a plurality of uncommitted changes associated with a source code;

creating, by the one or more processors, temporary branch corresponding to each uncommitted change associated with the source code;

merging, by the one or more processors, the temporary branch corresponding to each uncommitted change to corresponding portions of the source code;

ascertaining, by the one or more processors, that no merge conflict resulted from said merging and in response, performing a compilation, by the one or more processors, of a merged version of the source code, said merged version of the source code comprising the temporary branch corresponding to each uncommitted change; and

determining, by the one or more processors, that no compilation error occurred from the compilation and in response, creating, by the one or more processors, a version of a product that includes the merged version of the source code.

9. The computer program product of claim 8 , said method further comprising:

after said creating the temporary branch, verifying, by the one or more processors, that each uncommitted change pertains to the corresponding temporary branch by identifying a user command that issued when said creating the corresponding temporary branch was initiated.

10. The computer program product of claim 8 , wherein said receiving the plurality of uncommitted changes is in response to a determination that the plurality of uncommitted changes on a working copy of the source code passed a local merge and build test.

11. The computer program product of claim 8 , wherein said receiving the plurality of uncommitted changes is in response to a determination of occurrence of a predetermined time.

12. The computer program product of claim 8 , wherein said receiving the plurality of uncommitted changes is in response to a determination that a predetermined number of lines of code has been added to a working copy of the source code.

13. The computer program product of claim 8 , wherein the sequence of times occur in accordance with a predetermined constant time interval between the times in the sequence.

14. The computer program product of claim 13 , wherein the constant time interval is ninety minutes or three hours.

15. A computer system comprising: one or more processors, one or more computer readable storage devices, one or more memories, said one or more storage devices containing program code which, upon being executed by the one or more processors via the one or more memories, implements a method of detecting source code merge conflicts and compilation errors, said method comprising:

receiving, periodically at each time of a sequence of times by the one or more processors, a plurality of uncommitted changes associated with a source code;

creating, by the one or more processors, temporary branch corresponding to each uncommitted change associated with the source code;

merging, by the one or more processors, the temporary branch corresponding to each uncommitted change to corresponding portions of the source code;

ascertaining, by the one or more processors, that no merge conflict resulted from said merging and in response, performing a compilation, by the one or more processors, of a merged version of the source code, said merged version of the source code comprising the temporary branch corresponding to each uncommitted change; and

determining, by the one or more processors, that no compilation error occurred from the compilation and in response, creating, by the one or more processors, a version of a product that includes the merged version of the source code.

16. The computer system of claim 15 , said method further comprising:

after said creating the temporary branch, verifying, by the one or more processors, that each uncommitted change pertains to the corresponding temporary branch by identifying a user command that issued when said creating the corresponding temporary branch was initiated.

17. The computer system of claim 15 , wherein said receiving the plurality of uncommitted changes is in response to a determination that the plurality of uncommitted changes on a working copy of the source code passed a local merge and build test.

18. The computer system of claim 15 , wherein said receiving the plurality of uncommitted changes is in response to a determination of occurrence of a predetermined time.

19. The computer system of claim 15 , wherein said receiving the plurality of uncommitted changes is in response to a determination that a predetermined number of lines of code has been added to a working copy of the source code.

20. The computer system of claim 15 , wherein the sequence of times occur in accordance with a predetermined constant time interval between the times in the sequence.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2015
From: BIGWOOD, GEORGE T.; MCMANN, JASON T.; NIKITAIDES, MICHAEL G.; WALTON, KALEB D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036358/0354 →