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



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

每次发布新版本的软件时,我都会使用winmerge来检测哪些文件发生了更改,然后将这些更改合并到项目中。这工作正常,但随着我的定制的增长,这个任务变得越来越有问题。

我真正想做的是能够从我的当前版本到新版本之间得到一个差异,然后遍历并应用我想要的更改。如果我使用TFS,是否有标准的方法来完成它?也许一个3-way合并应用程序会做得更好?

使事情进一步复杂化,我使用主题支持将修改后的视图添加到另一个位置,因此需要找出版本之间的更改,并将其应用于这个额外文件夹中的文件。

事实上,这就是最令人头痛的地方——确定我做了哪些更改,哪些是新版本的新更改。

nopCommerce通过CodePlex将其源代码托管在Mercurial中。您真正需要做的就是克隆它们的存储库并对本地克隆进行更改。然后,你可以跟上他们的修改,或者等到下一个版本出来,然后从他们的仓库获得更新,并将其与你的更改合并。Mercurial是一个分布式版本控制系统,它的合并功能很好,如果您尝试使用Subversion、TFS或其他任何工具手动执行某些操作,那么遇到的问题会更少。下载TortoiseHg,它为您提供了一个很好的GUI和用于Mercurial的命令行工具。TortoiseHg自带KDiff3合并工具,但我强烈推荐Beyond Compare。它不是免费的,但是我愿意为这个软件付百倍的钱。

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

我使用过TFS和Subversion,我强烈推荐Subversion(源代码存储库)与TortoiseSVN(命令行)和VisualSVN(集成到Visual Studio中)。

使用这些工具,可以非常、非常容易地找出哪些文件被更改了,更重要的是,在发生严重错误时,可以回滚到以前的版本。

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

最新更新