Patent ID: 9557965
Date: 2017-01-31
CPC Classifications: G06F

Claim:
1. Method executed by a computer system for automatically merging changes applied to a first modified program code of a program code and to a second modified program code of the program code, both modified program codes being electronically coded and comprising one or more items, the items being items of a specific programming language; the method comprising the steps of: determining from each of the program code, the first modified program code and the second modified program code a respective data structure by programming language dependent parsing of the program code, the first modified program code and the second modified program code, thereby obtaining a syntax information of the program code and the first and second modified program codes; determining a first data structure difference between the data structure of the program code and the data structure of the first modified program code by comparing items X determining a second data structure difference between the data structure of the program code and the data structure of the second modified program code by comparing items X identifying cyclic moves of at least one item of the program code in the first and second modified program codes by evaluating the syntax information of the program code and the first and second modified program codes, a cyclic move being a conflict arising from at least two move operations moving the item in the program code to different positions in each of the first and second modified program codes that result, if included in a final program code, in a cycle; identifying name related conflicts by evaluating the syntax information of the program code and the first and second modified program codes, wherein two different items having a same name and being within a same scope are considered to cause a conflict if included in a final program code, and wherein two different items having the same name but being placed in different scopes are not considered to cause a conflict; generating, from the first and second data structure differences, a merged difference data structure, wherein generating the merged difference data structure comprises merging the first data structure difference and the second data structure difference; and generating a final program code by including at least one of the items Y