Developing complex software requires that multiple views and versions of the software can be developed in parallel and merged as supported by views and managed by version control systems. In this context, this paper considers monitoring merging and related consistency problems permanently at the level of models and abstract syntax to permit early and frequent conflict detection while developing in parallel. The presented approach introduces multi-version models based on typed graphs that permit to store changes and multiple versions in one graph in a compact form and allow (1) to study well-formedness for all versions without the need to extract each version individually, (2) to report all possible merge conflicts without the need to merge all pairs of versions, and (3) to report all violations of well-formedness conditions that will result for merges of any two versions independent of any merge decisions without the need to merge all pairs of versions. The paper defines the related concepts and algorithms operating on multi-version models, proves their correctness w.r.t.~the usually employed three-way-merge, and reports on preliminary experiments concerning the scalability.
翻译:开发复杂的软件,要求软件的多种观点和版本可以平行开发并合并,并辅以各种观点,由版本控制系统加以管理。在这方面,本文件考虑在模型和抽象语法一级长期监测合并及相关一致性问题,以便在同时开发的同时能够及早和频繁地发现冲突。提出的方法采用了基于打印图的多版本模型,允许以一个缩略图将变化和多个版本以一个缩略图形式存储,并允许(1) 研究所有版本的完善性,而不必单独地提取每个版本;(2) 报告所有可能的合并冲突,而不必合并所有版本;(3) 报告任何合并决定的任何两个版本都会导致合并和合并的任何合并条件出现的所有违反情况,而不必合并所有版本。本文件界定了在多版本模型上运行的相关概念和算法,证明了其正确性w.r.t. ~ 通常使用的三维拼录,并报告了关于可缩缩略性的初步实验。