首页> 外文会议>Proceedings of the 19th ACM SIGSOFT symposium on foundations of software engineering. >Semistructured Merge:Rethinking Merge in Revision Control Systems
【24h】

Semistructured Merge:Rethinking Merge in Revision Control Systems

机译:半结构化合并:修订控制系统中的合并反思

获取原文
获取原文并翻译 | 示例

摘要

An ongoing problem in revision control systems is how to resolve conflicts in a merge of independently developed revisions. Unstructured revision control systems are purely text-based and solve conflicts based on textual similarity. Structured revision control systems are tailored to specific languages and use language-specific knowledge for conflict resolution. We propose semistructured revision control systems that inherit the strengths of both: the generality of unstructured systems and the expressiveness of structured systems. The idea is to provide structural information of the underlying software artifacts - declaratively, in the form of annotated grain-mars. This way, a wide variety of languages can be supported and the information provided can assist in the automatic resolution of two classes of conflicts: ordering conflicts and semantic conflicts. The former can be resolved independently of the language and the latter using specific conflict handlers. We have been developing a tool that supports semistructured merge and conducted an empirical study on 24 software projects developed in Java, C#, and Python comprising 180 merge scenarios. We found that semistructured merge reduces the number of conflicts in 60 % of the sample merge scenarios by, on average, 34 %, compared to unstructured merge. We found also that renaming is challenging in that it can increase the number of conflicts during semistructured merge, and that a combination of unstructured and semistructured merge is a pragmatic way to go.
机译:版本控制系统中的一个持续问题是如何解决独立开发的版本合并中的冲突。非结构化版本控制系统完全基于文本,并基于文本相似性解决冲突。结构化的修订控制系统针对特定的语言量身定制,并使用特定于语言的知识来解决冲突。我们提出了一种半结构化修订控制系统,该系统继承了两者的优点:非结构化系统的通用性和结构化系统的表现力。这个想法是以声明性的颗粒-火星的形式声明性地提供底层软件工件的结构信息。这样,可以支持多种语言,并且所提供的信息可以帮助自动解决两类冲突:排序冲突和语义冲突。前者可以独立于语言来解决,后者可以使用特定的冲突处理程序来解决。我们一直在开发一种支持半结构化合并的工具,并对包含180个合并方案的Java,C#和Python开发的24个软件项目进行了实证研究。我们发现,与非结构化合并相比,半结构化合并将60%的示例合并场景中的冲突数量平均减少了34%。我们还发现,重命名具有挑战性,因为它可以增加半结构化合并期间的冲突数量,并且非结构化合并和半结构化合并是一种务实的方法。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号