IP Library Granted Patent US 9,158,658
Granted Patent B2
US 9,158,658 · App. 14/053,911 · Granted Oct 13, 2015

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,158,658
App. No.
14/053,911
Granted
Oct 13, 2015
Kind
B2
Abstract

A method, system, and computer program product for detecting merge conflicts and compilation errors in a collaborative integrated development environment are provided in the illustrative embodiments. Prior to at least one user committing a set of uncommitted changes associated with a source code to a repository, the computer receives the set of uncommitted changes associated with the source code. The computer creates at least one temporary branch corresponding to the set of uncommitted changes associated with the source code. The computer device merges the at least one temporary branch to corresponding portions of the source code. The computer determines whether a merge conflict has occurred. If the merge conflict occurred, the computer communicates a first notification to the at least one user, the first notification indicating the merge conflict.

Claims (44)

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, whether a merge conflict resulted from said merging;

in response to having ascertained that no merge conflict resulted from said merging, 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;

determining, by the one or more processors, whether a compilation error occurred from the compilation; and

in response to having determined that no compilation error occurred from the compilation, 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, whether a merge conflict resulted from said merging;

in response to having ascertained that no merge conflict resulted from said merging, 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;

determining, by the one or more processors, whether a compilation error occurred from the compilation; and

in response to having determined that no compilation error occurred from the compilation, 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, whether a merge conflict resulted from said merging;

in response to having ascertained that no merge conflict resulted from said merging, 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;

determining, by the one or more processors, whether a compilation error occurred from the compilation; and

in response to having determined that no compilation error occurred from the compilation, 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 19 , 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 Oct 16, 2013
From: BIGWOOD, GEORGE T.; MCMANN, JASON T.; NIKITAIDES, MICHAEL G.; WALTON, KALEB D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031415/0123 →