项目升级变更与定制版本合并
我正在运行一个开源电子商务商店(nopcommerce),并对商店进行了很多自定义。
每次发布新版本的软件时,我都会使用 winmerge 尝试检测哪些文件发生了更改,然后将这些更改合并到项目中。这工作正常,但随着我的定制化程度的提高,这项任务变得越来越有问题。
我真正想做的是能够获得当前版本与新版本的差异,然后仔细检查并应用我想要的更改。 如果我使用 TFS 来实现此目的,是否有标准方法可以实现此目的?也许三向合并应用程序可以更好地完成这项工作?
让事情变得更复杂的是,我使用主题支持将修改后的视图添加到另一个位置,因此需要弄清楚版本之间的更改并将其应用到此附加文件夹中的文件。
事实上,这就是最令人头痛的地方——确定我做了哪些更改,哪些是新版本的新更改。
I'm running an open source ecommerce store (nopcommerce) and have made a lot of customizations to the store.
Every time a new version of the software is released, I use winmerge to try to detect which files have changed, and then merge these changes into the project. This works OK but as my customization have grown, this task has become increasingly problematic.
What I'd really like to do is be able to get a diff from my current version to the new version, and then go through and apply the changes that I want.
If I use TFS for this, is there a standard way to accomplish this? Perhaps a 3-way merge app would do the job better?
To complicate things a bit further, I'm using the theming support to add my modified views in another location, so the changes from version to version need to be figured out and applied to the files in this additional folder as well.
In fact this is where the big headache comes in- determining which changed I made, and which ones are new changes from the new version.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
nopCommerce 通过 CodePlex 将其源代码托管在 Mercurial 中。您真正需要做的就是克隆他们的存储库并对本地克隆进行更改。然后,您可以跟上他们的修改,或者等到下一个版本发布,然后从他们的存储库获取更新并将其与您的更改合并。 Mercurial 作为一个分布式版本控制系统,合并效果很好,如果您尝试使用 Subversion、TFS 或除 Mercurial 之外的其他系统手动执行某些操作,问题将会更少。下载 TortoiseHg,它为您提供了漂亮的 GUI 和 Mercurial 的命令行工具。 TortoiseHg 附带了 KDiff3 合并工具,但我强烈推荐Beyond Compare。它不是免费的,但我愿意为这个软件支付一百倍以上的费用。
与往常一样,如果您需要使用 Mercurial 的帮助,请参阅 Hg 书籍。
nopCommerce hosts its source code in Mercurial via CodePlex. All you really need to do is clone their repository and make changes to your local clone. Then, you can either keep up with their modifications or wait until the next release comes out, then get an update from their repo and merge it with your changes. Mercurial, being a distributed version control system, just does merges well, and you will have fewer problems if you try to do something manually for yourself using Subversion, TFS, or anything but Mercurial. Go download TortoiseHg, which gives you both a nice GUI and the command-line tools for Mercurial. TortoiseHg comes with the KDiff3 merge tool, but I highly recommend Beyond Compare. It's not free, but I'd pay for this software a hundred times over.
As always, if you need help with using Mercurial, see the Hg Book.
我已经使用了 TFS 和 Subversion,并且我强烈推荐使用 TortoiseSVN(命令行)和 VisualSVN(集成到 Visual Studio 中)。
使用这些工具,可以非常非常容易地准确找出哪些文件发生了更改,更重要的是,如果出现严重错误,可以回滚到以前的版本。
您还可以添加 CruiseControl 持续集成来自动构建您的解决方案并在每次签入时运行单元测试,以确保您没有不要无意中破坏某些东西。
I have used both TFS and Subversion and I strongly recommend Subversion (source repository) with TortoiseSVN (command line) and VisualSVN (integrated into Visual Studio).
With these tools, it is very, very easy to find out exactly what files have changed and, more importantly, rollback to a previous version in the event that something goes horribly wrong.
You can also add CruiseControl continuous integration to automatically build your solution and run unit tests on each checkin to ensure that you didn't inadvertently break something.