Remote real-time collaborative text editing enables collaboration of distributed parties which improves an agile workflow, team member availability and productivity. Collaborative source-code editors are often implemented as a variant of regular collaborative text editing with source code highlighting. Such approaches do not use the structural program information to accurately merge concurrent changes on the same portions of code for temporal network partitions. Therefore, these approaches fail to merge concurrent structural changes to the program such as a concurrent move and edit operation. In this paper we propose an approach in which the editor replicates not the program text but the program tree that corresponds with the program text. Propagating source code changes as tree operations enables resolving concurrent tree changes with higher accuracy. We evaluate our approach by reproducing a use case in which we concurrently change source code on existing tools and our approach. We show that existing tools break the lexical structure and come up with an incorrect program while our approach can distinctly apply the changes preserving the program structure.
| Proceedings of the 17th International Conference on Software Technologies - ICSOFT
- Conflict-free Replicated Data Types
- Software Evolution
- Abstract Syntax Trees
- Distributed Collaboration