如何轻松合并两个源文件?

Posted

技术标签:

【中文标题】如何轻松合并两个源文件?【英文标题】:How to merge two source files easily? 【发布时间】:2010-10-07 04:15:21 【问题描述】:

我正在与另一位在 VS2005 中使用 C# 的同事一起在一个不太复杂的项目中工作。但是,我们没有版本控制系统,我们相互发送我们的最新版本并将更改复制到我们自己的文件中。

我们现在必须将两个文件(大部分项目是单个表单文件)合并到项目的最后一个版本中。

有什么建议吗?也许尝试差异工具?它必须快速完成,并且可能无法学习如何使用复杂的修订控制程序。

【问题讨论】:

【参考方案1】:

试试WinMerge

WinMerge 是用于 Windows 的开源差异和合并工具。 WinMerge 可以比较文件夹和文件,以易于理解和处理的可视文本格式呈现差异。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 @Craigy - 做我的客人。我不知道如何比他们更好地描述它,并且试图在这里展示它实际上意味着复制他们的页面,包括屏幕截图。【参考方案2】:

试试SourceGear DiffMerge。我团队的一些成员甚至使用它来代替 Visual Studio 中的标准比较/合并工具。

【讨论】:

我正在尝试 winmerge。 DiffMerge 是否优于 winmerge?【参考方案3】:

关于不使用版本控制的讲座我会省略,但最好的办法是尝试使用像 WinMerge 这样的差异工具来比较两个文件的差异并手动合并你们每个人的更改做成一个文件。

如果您在各自进行任何更改之前拥有双方开始使用的公用文件,那么您可以使用 3 路合并功能生成一个包含您的两个更改的文件。

有人向我指出 WinMerge 不提供 3 路合并,因此请参阅 this other question 以查找支持它的工具。

【讨论】:

小问题:WinMerge 不支持 3 路合并。它可以接受第三个“输出文件”参数,但不能接受“共同祖先”或“基础”文件。我见过的用于 Windows 的最常见的免费易用的 3 路合并工具是 TortoiseMerge,它与 TortoiseSVN(或 TortoiseGit,或我认为的任何其他衍生产品)一起安装。【参考方案4】:

我认为 WinMerge 非常适合区分和合并文件。

但是,我绝对建议您为自己获取某种源代码控制系统。 CVS、Subversion、Git、Mercurial 等等!!!选择哪一个并不重要,买一个就行了。您几乎可以立即获得及时的投资回报,并且您还将了解在所有严肃的软件开发中至关重要的一些东西。

【讨论】:

谢谢,我会调查的,但是我需要一个临时的快速解决方案,winmerge 看起来很棒:)【参考方案5】:

我们使用BeyondCompare - 我们发现它是一个出色的比较和合并工具。

我了解现在生成最终代码版本需要速度。

但是,如果您打算开始另一个项目,那么花时间来设置源代码控制系统确实是值得的。在整个项目过程中,您将节省大量时间!

【讨论】:

【参考方案6】:

因为我只是在寻找完全不同的东西时发现了这个问题,并注意到 WinMerge 不进行 3 路合并的断言。

这曾经是正确的,但是 WinMerge 是在新的管理下,并且已经进行了一段时间的 3 路合并。在本文发布时,当前的 WinMerge 版本为 2.16.2,可在 WinMerge.Org 获得(32 位和 64 位的安装包,以及源代码)。

【讨论】:

以上是关于如何轻松合并两个源文件?的主要内容,如果未能解决你的问题,请参考以下文章

将两个greps的输出合并为一个文件

如何将多个文件进行合并?

使用 Python 字典在 Python 中合并 CSV 文件

如何将两个 wav 文件合并/合并为一个 wav 文件?

如何合并两个文本文件?

使用Python Dictionary在Python中合并CSV文件