A method of automatically adjusting and compiling in-flux code segments in order to allow improved code collaboration.
Publication Date: 2013-Jul-01
The IP.com Prior Art Database
A method is disclosed that handles editing of source code from both local and remote locations in a collaborative code environment and suggests procedures for error and compile issues.
Page 01 of 4
A method of automatically adjusting and compiling in -flux code segments in order to allow improved code collaboration.
When working on software source code, it is sometimes necessary for multiple developers to work on the same file in a source control system concurrently. This is currently achieved by either locking the file such that only the developer that currently holds the lock can make changes in the source control system, or by giving each developer a separate copy of the file and requiring them to merge their changes with changes made by other developers. This often causes delays in the development process. In addition to this, it would be beneficial if the developers could collaborate more freely in real-time, as there may be a better solution which solves the combination of the problems that the developers are working on separately. This is particularly of benefit when developers are geographically remote and cannot share a screen to discuss the source code.
There is tooling available, for example Google Wave, to allow multiple users to collaborate on a single document concurrently over a network. While these documents can be rich text or images, there is no offering available for an Integrated Development Environment (IDE) to allow users to collaborate concurrently on software source code. An IDE performs dynamic code compilation and analysis in order to highlight syntax or logic errors in the code, and to provide suggestions for auto-completion of the current line of code, however, if a developer were to simply program a Google Wave style implementation in their IDE, there would be a number of issues in the way that this dynamic code compilation would work. Such a system would not scale well when there is more than one user editing code at any given time. For example, whilst a user may wish to get real time updates to their application, they may not care about any compiler errors that are caused by another programmer. Additionally, when editing the same file as another user, they may wish to get a build that contains just their changes.
The disclosed method adds additional functionality in addition to that offered by a standard IDE compiler, to allow the collaborative compiler to differentiate between the local user's changes, completed remote changes, and remote changes still in progress by other users. The collaborative compiler then allows the local user to compile their changes even if some of the code is being modified by other users in a way that would normally cause compilation to fail. To achieve this, the collaborative compiler can substitute code elements which are being worked on by other users. These elements are substituted with either historical versions of the element, or with pseudo elements that allows the compiler to skip over these elements and compile the rem...