65.9K
CodeProject 正在变化。 阅读更多。
Home

语义合并(Beta 版发布)

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2013年10月16日

CPOL

5分钟阅读

viewsIcon

14632

语义合并(Beta 版发布)

在今年早些时候的一篇博文中,我简要概述了Semantic Merge。这款来自PlasticSCM的强大工具,通过易于理解的可视化界面,能让代码合并过程更加智能和“美观”,清楚地展示复杂合并中代码的动态,避免开发团队为之抓耳挠腮。

Semantic Merge, an incredible Merge and Diff tool based on Microsoft's Roslyn has been officially released.

基于Microsoft 的 Roslyn 的强大合并和差异比较工具 Semantic Merge 已正式发布。

今天,Semantic Merge 已结束 Beta 测试阶段,并正式发布 1.0 版本。本文将回顾一些旧功能,以便不熟悉该工具所有主要功能的读者能有所了解,同时介绍此版本中新增的一些“锦上添花”的功能。

功能和改进

与大多数现有的合并和差异比较工具不同,Semantic Merge 试图通过分析代码的结构和底层功能来真正“理解”代码的作用,而不是仅仅关注代码的位置。我在早期博文中提到的部分优势如下:

  • 不依赖位置的合并此功能基本忽略了方法的具体位置,允许您轻松重构代码并移动元素。它实际上是逐个方法进行合并,而不是像传统的“差异比较”操作那样将整个代码库视为一个文本文件。
  • 合并和差异比较可视化 – Semantic Merge 是一个非常直观的工具。此功能允许您轻松地在合并前后的状态下直观地表示您的方法,这对于进行重大重构或大量代码重构非常有帮助。
  • 基于方法的冲突解决 - 如果两个开发人员并行修改了同一个方法,但没有产生文本上的冲突,这可能会成为一个问题。但有了 Semantic Merge,即使文本块没有明确说明存在冲突,它也会通知您。
  • 更智能的重构 - 如果开发人员 A 在现有类中创建了一个新类,而开发人员 B 随后将父类移动到另一个位置,Semantic Merge 可以检测到这些更改,并确保所有代码及其重定位都得到正确处理。
  • 语义化“差异比较”Semantic Merge 还包含一个名为 Semantic Diff 的工具,它提供了一种(再次强调)非常直观的方法来精确确定代码段中的具体更改。
  • 语言支持 - 目前支持 Java、Visual Basic 和 C#(计划支持 JavaScript、C、C++、PHP、Python 和 Ruby)。

最新版本包含以下更新、更改和改进:

  • 外部配置支持Semantic Merge 现在允许您轻松地从外部源提供配置数据,以简化配置过程,或者当您有多个应用程序或解决方案需要相同或相似的设置时非常有用。
  • 改进的文档与任何重大发布一样,文档始终至关重要,Semantic Merge 也不例外。该产品之前的版本在这方面经常有所欠缺,因此这是一个重大的改进。
  • 海量 Bug 修复当您退出 Beta 测试阶段时,通常意味着您的应用程序已经过彻底的测试,排除了之前版本中可能存在的 Bug 和其他潜在问题。此版本包含了大量大小 Bug 的修复,让 Semantic Merge 能够为生产环境做好准备。
  • 更新的配色方案 – 毕竟谁不喜欢颜色呢。

更快上手

此版本的 Semantic Merge 还附带了“快速入门指南”。顾名思义,它可以帮助您迅速地在当前应用程序和解决方案中启动和运行 Semantic Merge。该指南还非常易于理解地解释了 Semantic Merge 的工作方式与传统合并或差异比较工具的区别。

An example of the "Getting Started" guide demonstrating the three major types of files involved in a Semantic Merge operation : the base file, the source file and the destination file.

“入门”指南的示例,演示了 Semantic Merge 操作中涉及的三种主要文件类型:基础文件、源文件和目标文件。

该指南不仅以非常直观且易于理解的方式回顾了合并过程(这对于向不熟悉与经常导致冲突的糟糕开发者合作的人解释该过程是一个很好的工具),而且还告诉您在整个应用程序中可能会看到什么。例如,Semantic Merge 中的实际差异比较操作可能如下所示:

An example of what a very small diff operation might look like in Semantic Merge.

Semantic Merge 中一个非常小的差异比较操作示例。

而 Semantic Merge 中的实际合并操作可能如下所示:

An example Merge operation within Semantic Merge.

Semantic Merge 中的一个合并操作示例。

Semantic Merge 还附带了几个不同的示例和演示应用程序,以帮助您在尝试将其用于您的 500,000+ 行代码的企业应用程序之前更好地理解如何有效地使用它,这样您就可以先“试水”而不是直接“跳崖”。它可以以多种方式使用,并可以配置和集成到大多数主要的源代码控制系统中,例如:

或者,也可以轻松地单独使用它,作为一个优秀的合并/差异比较工具。

立即体验!

如果您仍然感兴趣并继续阅读,请访问 PlasticSCM 并了解我可能遗漏的 Semantic Merge 的其他主要功能。显然,对于一些人来说,传统的合并和差异比较工具已经足够了,但如果您正在寻找改进这些工具的方法,我强烈建议您至少下载并试用一下,看看它是否能让您和您的团队的生活更轻松。

它的许可计划起价约为每月 3.99 美元,但您可以访问 Semantic Merge 获得 15 天免费试用,或者直接从下面的链接下载:

分类于:CodeProject, Development

© . All rights reserved.