许多不同语言的开发人员都有着共同的成长难题。 冗长的源代码将在开发人员的整个职业生涯中成为一个棘手的问题,但是考虑较少的问题是编译和合并来自同一源的两个或更多副本的编辑。 幸运的是,对于这种情况,有非常有用的工具可用。
在寻找用于代码比较的软件工具时,您会遇到许多不同的解决方案。 Windows和Mac OSX都有自己的免费工具和付费工具,以及在所有系统上普遍运行的Web应用程序。
1.扩散
可通过SourceForge免费下载Diffuse软件 。 他们提供了Linux,Win32,Mac OS X和FreeBSD的安装代码。 每个操作系统都支持命令行提示符和基于GUI的窗口工具包。
根据您的工作方式,命令行确实可以大大加快速度,但是前提是您知道自己在做什么! 为了简单起见,您可能希望坚持使用基本GUI。 他们的网站上有几个屏幕截图,您可以查看这些截图以及功能列表。 这些功能包括逐行比较和详细的代码突出显示。
![Linux OS支持Diffuse](https://i-blog.csdnimg.cn/blog_migrate/b26aade13a9c5ac7556d15ccd4faf1f9.jpeg)
![Linux OS支持Diffuse](https://i-blog.csdnimg.cn/blog_migrate/b26aade13a9c5ac7556d15ccd4faf1f9.jpeg)
我真正喜欢Diffuse的是项目的开源性质。 您无需支付任何费用即可完全使用其软件套件的功能。 在主要的操作系统中,这可能是最广泛接受的用于比较代码文件的免费工具。 如果有时间,请查看他们的在线手册 ,该手册可以帮助您解决所有问题。 当然,您始终可以下载并安装该应用程序以获得亲身体验。
2. DiffMerge
一家名为SourceGear的软件公司已经推出了另一款出色的产品DiffMerge 。 所有主要操作系统都支持其软件,并且它们还具有一组用于比较代码行的工具。
![DiffMerge文件的Mac OS X屏幕截图](https://i-blog.csdnimg.cn/blog_migrate/d5a72d0d1750856c2e6171c1a9749c93.png)
![DiffMerge文件的Mac OS X屏幕截图](https://i-blog.csdnimg.cn/blog_migrate/d5a72d0d1750856c2e6171c1a9749c93.png)
在DiffMerge屏幕截图库中 ,您将找到在Windows,Mac和Linux环境中运行的程序的示例。 在每个示例中,很清楚如何创建按钮和工具栏并将其简单地放置在一起。 使用此套件,您不仅限于单个文件比较,而且实际上可以将整个代码文件夹拼凑起来! 您可以相对容易地并排比较两个项目源文件夹。 突出显示多个窗格中的代码差异的附加功能使DiffMerge更加有价值。
DiffMerge是100%免费下载。 如果查看其下载页面 ,则可以从数十种安装程序解决方案中进行选择。 我必须承认,作为一个免费工具,该程序确实使竞争吓了一跳!
3.活动文件比较
开发公司Formula Software已推出了Microsoft Windows专用的工具,用于专业代码比较和版本管理。 它称为Active File Compare ,它使用稍微复杂一些的语言(例如C ++ / C#,Java,Visual Basic和Ruby)面向程序员。 基本的Web语言(例如HTML和PHP)支持代码突出显示。
![Macbook特写细节照片](https://i-blog.csdnimg.cn/blog_migrate/cec8bac9c9fb65618d487d7c5a09ffa1.jpeg)
![Macbook特写细节照片](https://i-blog.csdnimg.cn/blog_migrate/cec8bac9c9fb65618d487d7c5a09ffa1.jpeg)
不幸的是,该软件仅在试用版中免费提供。 最便宜的许可证价格为个人10美元,企业15美元。 此价格表相当合理,尤其是考虑到您终身免费获得免费更新,并且没有经常性费用。
真正突出的一项功能是能够在Microsoft Office文档之间进行比较。 具体来说,当您需要在许多标签和工作表之间切换时,很难将Excel电子表格合并在一起。 AFC软件将保留您的更改历史记录,以便您可以还原到任何点而不会丢失以前的数据。 您可以将这些更改集中在一起,成为行为类似于小型版本控制系统的项目。
![活动文件比较合并文件](https://i-blog.csdnimg.cn/blog_migrate/01c0576ec9a7dddeb2df66b0ab252c5f.png)
![活动文件比较合并文件](https://i-blog.csdnimg.cn/blog_migrate/01c0576ec9a7dddeb2df66b0ab252c5f.png)
如果您一直在使用高级开发语言工作,那么我建议给AFC一个机会。 它具有与其他解决方案类似的GUI,以及基本的命令行选项。 但是,导入和比较Excel电子表格的能力很容易证明许可成本合理。
4.万花筒App
借助我们介绍的Windows解决方案,我们不能让Mac用户感到冷落。 万花筒已经出现了几年,并且在许多网页设计画廊中都有展出。 该应用可免费下载30天试用版,如果您希望保留该应用,则需要支付29美元的购买费(约合39美元)。
![Mac OS X万花筒](https://i-blog.csdnimg.cn/blog_migrate/16b8d38fb028bcd97703f2339965d3ba.png)
![Mac OS X万花筒](https://i-blog.csdnimg.cn/blog_migrate/16b8d38fb028bcd97703f2339965d3ba.png)
我必须说这是代码比较工具的较昂贵的解决方案之一。 但是,您不应该对Mac应用程序抱有其他期望,当然,它们的设计标准是无可挑剔的。 甚至应用程序网站本身的设计也很棒!
![kaleidascope os x app的主页](https://i-blog.csdnimg.cn/blog_migrate/ffb4ea8dbb7a86fe41795584bfe66bbf.png)
![kaleidascope os x app的主页](https://i-blog.csdnimg.cn/blog_migrate/ffb4ea8dbb7a86fe41795584bfe66bbf.png)
其中一些新增功能包括即时搜索栏,可自定义的代码突出显示,键盘快捷键以及对最流行版本的控制系统的支持。 Git,SubVersion和Mercurial是众多选项中评分最高的3个。 您甚至可以绑定第三方应用程序,例如Gitbox或Tower Git客户端 。
但是,最独特和令人惊讶的功能是能够比较图像之间的差异! 这些文件包括.png和.jpg之类的文件类型,而Kaleidoscope甚至支持诸如PSD和AI之类的动态文件。 是的,您没有看错—该应用程序可以在同一界面内比较代码文件和分层图像! 谈论一些令人印象深刻的开发技能。 似乎$ 40USD实际上是具有所有这些功能的软件的便宜货。
5. WinMerge
对于另一个桌面解决方案,我想介绍WinMerge 。 他们从2009年6月开始开发,现在提供100%免费下载的软件。 支持包括Windows 98到Vista / 7的所有版本,并具有32位和64位安装程序。
![WinMerge主页网站](https://i-blog.csdnimg.cn/blog_migrate/301fc137efbeed0f62ba8b95d3fec0b6.jpeg)
![WinMerge主页网站](https://i-blog.csdnimg.cn/blog_migrate/301fc137efbeed0f62ba8b95d3fec0b6.jpeg)
该软件是标准软件,具有您在比较源文件时希望找到的所有功能。 不同的行号,代码突出显示,选项卡式界面,文件合并等。您可以在其个人网站上阅读更多内容 ,其中还包括一些漂亮的屏幕截图和安装说明。 在线手册还介绍了一些可能会遇到的基本FAQ初学者。
没有任何特定的电话卡可以让您选择WinMerge,而不是其他解决方案。 这并不是说该软件不值得尝试; 与其他选项相比,某些Windows用户可能更喜欢它。 多年来的开发人员已经充分记录了许多功能,而免费的GNU工具绝对不会出错。
6.比较我的文件
这是我用来比较不同代码段的唯一基于浏览器的Web应用程序。 比较我的文件是一个简单且免费的在线实用程序。 您可以使用该工具解析两个不同文件的代码以突出显示差异。 如果文件非常相似,您还可以选择逐行比较代码以收集更准确的结果。
这里最大的弊端是您一次只能上传两个文件。 请记住,几乎所有桌面替代方案都将提供更好的界面来管理详细的代码差异。 当然,对于Web应用程序而言,这仍然令人印象深刻。 当您在另一台没有任何预装代码比较工具的计算机上工作时,我觉得“比较我的文件”是您的最佳选择。
![比较我的文件网络应用](https://i-blog.csdnimg.cn/blog_migrate/5c3a399608e7f5c8e1e5f4f1c4265b78.png)
![比较我的文件网络应用](https://i-blog.csdnimg.cn/blog_migrate/5c3a399608e7f5c8e1e5f4f1c4265b78.png)
此应用程序还可以作为快速签入系统使用,以确保文件匹配。 从云系统下载不同的.zip归档文件时,我发现自己处于这个位置,我不确定100%确定已编辑了哪些文件。 上载工具仅支持纯文本源代码,但就解析引擎而言,内容语言完全无关。 尝试一下,您可能会对基于浏览器的解决方案相对于其他软件的直观感觉感到惊讶。
结论
如果您已经构建软件或Web项目已有一段时间,那么您可以了解管理这些文件的难度。 合并不同的源代码的过程可能非常烦人,并且有启动风险,但是随着您习惯了工作流程,您将可以节省数小时的工作时间。
我希望这些工具能使您对管理代码和保持目录文件保持最新状态感兴趣。 如果您还有其他示例或希望分享您的想法,请在下面的讨论区域中进行。
翻译自: https://www.hongkiat.com/blog/useful-code-comparing-tools-for-developers/