项目升级更改与自定义版本合并

时间:2011-11-29 02:00:21

标签: version-control tfs merge nopcommerce

我正在运行一个开源电子商务商店(nopcommerce),并对商店进行了大量自定义。

每次发布​​新版软件时,我都会使用winmerge来检测哪些文件已更改,然后将这些更改合并到项目中。这可行,但随着我的定制工作的增加,这项任务变得越来越成问题。

我真正想做的是能够从当前版本到新版本的差异,然后通过并应用我想要的更改。 如果我使用TFS,有没有一种标准的方法来实现这一目标?也许一个三向合并应用程序可以更好地完成工作?

为了使事情进一步复杂化,我正在使用主题支持将我修改后的视图添加到另一个位置,因此需要计算出从版本到版本的更改并将其应用于此附加文件夹中的文件。

事实上,这是一个令人头疼的问题 - 决定了我所做的改变,以及哪些是新版本的新变化。

2 个答案:

答案 0 :(得分:1)

nopCommerce在Mercurial via CodePlex中托管其源代码。您真正需要做的就是克隆他们的存储库并对您的本地克隆进行更改。然后,您可以跟上他们的修改或等到下一个版本发布,然后从他们的repo获取更新并将其与您的更改合并。 Mercurial是一个分布式版本控制系统,只是合并得很好,如果你尝试使用Subversion,TFS或Mercurial之外的任何东西手动为自己做一些事情,你会遇到更少的问题。下载TortoiseHg,它为您提供了一个很好的GUI和Mercurial的命令行工具。 TortoiseHg附带了KDiff3合并工具,但我强烈推荐Beyond Compare。这不是免费的,但我会为这个软件付出一百倍的费用。

与往常一样,如果您在使用Mercurial时需要帮助,请参阅Hg Book

答案 1 :(得分:0)

我已经使用了TFS和Subversion,我强烈推荐使用TortoiseSVN(命令行)和VisualSVN(集成到Visual Studio中)的Subversion(源存储库)。

使用这些工具,可以非常非常容易地找到确切的文件更改,更重要的是,如果出现严重错误,可以回滚到以前的版本。

您还可以添加CruiseControl持续集成以自动构建解决方案并在每次签入时运行单元测试,以确保您不会无意中破坏某些内容。