发明名称 Tree-based versioning and merging
摘要 In various example embodiments, a version control server controls the versioning and modification of source code by representing the source code as a tree structure. The tree structure includes various nodes, which represent constituent parts of the source code. Changes to the source code are reflected in changes to the tree structure, such as by deleting or inserting nodes. The version control server identifies a list of changes made to the source code via the tree structure, and obtains a successor version of the source code by applying a list of node changes. The version control server also manages changes to the source code by multiple users by recording and associating the tree structure of the source code when it was checked-out by each user. When a user checks the source code back in, attempts to modify the source code by merging and/or modifying the corresponding tree structure.
申请公布号 US9471304(B1) 申请公布日期 2016.10.18
申请号 US201514743869 申请日期 2015.06.18
申请人 SAP SE 发明人 Fuchs Matthias
分类号 G06F17/22;G06F9/44 主分类号 G06F17/22
代理机构 Schwegman Lundberg & Woessner, P.A. 代理人 Schwegman Lundberg & Woessner, P.A.
主权项 1. A system for tree-based computer code versioning and merging, the system comprising: a repository comprising a first file that includes source code for a computer program; a tree conversion module, using at least one processor, configured to: convert the source code of the first file to a first tree representation, the first tree representation comprising a first plurality of nodes, each node of the first plurality of nodes representing a constituent part of the source code of the first file; a source code versioning module, using at least one processor, configured to: receive a first request for a copy of the first file from the repository;invoke, in response to receiving the first request, the tree conversion module to obtain a snapshot of the first tree representation;provide the copy of the first file in response to the first request;receive, after the first request, a second request to store a second file in the repository as a current version of the first file, the second file comprising the source code of the copy of the first file and at least one change to the source code of the copy of the first file, the first request and the second request being associated with a first user;invoke the tree conversion module to obtain a second tree representation of the second file in response to receiving the second request, the second tree representation comprising a second plurality of nodes;determine, in response to receiving the second request, whether the first file in the repository has been modified since the copy of the first file was provided;invoke, based on a determination that the first file in the repository has not been modified since the copy of the first file was provided, the tree conversion module to generate a first new version of the first file based on the second tree representation; andstore the first new version of the first file in the repository as the current version of the first file; a tree comparator module, using at least one processor, configured to: identify, based on a determination that the first file in the repository has been modified since the copy of the first file was provided, differences between the snapshot of the first tree representation and the second tree representation by comparing the first plurality of nodes with the second plurality of nodes; and a tree modification module, using at least one processor, configured to: modify a third tree representation of the source code based on the identified differences between the snapshot of the first tree representation and the second tree representation, the third tree representation being a tree representation of the current version of the first file in the repository; the source code versioning module further configured to: invoke the tree conversion module to generate a second new version of the first file based on the modified third tree representation; andstore the second new version of the first file in the repository as the current version of the first file.
地址 Walldorf DE