Visual studio 2008 Mercurial:维护VisualStudio2005和2008分支
我正在尝试开发一个工作流,它允许我们分别维护库的VisualStudio2005和2008版本,同时确保对一个分支的更改总是复制到另一个分支中 目前,我建议只对默认(VS2005)分支进行更改,然后在完成后合并到VS2008分支中。不幸的是,这依赖于纪律,而不仅仅是在发现问题时以及在关键时刻解决问题,这可能会很困难。这导致我不得不在以后尝试将一个分支中的更改改装回默认值 我知道我们可以将VS2005和VS2008项目之间的更改存储在修补程序队列中,但我是团队中唯一一个习惯使用命令行的人,我的同事更喜欢通过Tortoise HG来完成所有事情 因此,我依靠事后解决问题。我当前的过程涉及为VS2008分支中的每个变更集导出修补程序,并将其应用于默认分支。这很费时,但比尝试将VS2008分支的提示与默认提示合并,然后手动转换回VS2005更不容易出错 读过之后,我尝试备份“升级”更改集,但最终的备份更改集始终作为VS2008分支的新尖端,而且我无法再将更改合并回去,因为最终的合并将在VS2008分支中结束,即使我尝试在提交时显式关闭分支 我已经尝试了很多方法,但最后总是得到一个新的VS2008分支提示,无法将更改合并回默认分支。因此,我开始意识到我错过了一些明显的东西 那么,归根结底,当您试图维护库的两个版本时,其他人认为什么是最佳实践,而这两个版本之间的唯一区别是嵌入到项目和解决方案文件中的Visual Studio版本号 编辑:我试图避免的问题是,如果将VS2005项目添加到VS2008解决方案中(为了便于调试),它会自动将VS2005项目“升级”到VS2008,从而导致“更改”工作副本和大量不必要的“转换”文件。因此,我宁愿将分支分开,并要求用户在克隆后的第一次更新中选择所需的版本,而不是让人们尝试将其“升级”到主线Visual studio 2008 Mercurial:维护VisualStudio2005和2008分支,visual-studio-2008,visual-studio-2005,mercurial,tortoisehg,Visual Studio 2008,Visual Studio 2005,Mercurial,Tortoisehg,我正在尝试开发一个工作流,它允许我们分别维护库的VisualStudio2005和2008版本,同时确保对一个分支的更改总是复制到另一个分支中 目前,我建议只对默认(VS2005)分支进行更改,然后在完成后合并到VS2008分支中。不幸的是,这依赖于纪律,而不仅仅是在发现问题时以及在关键时刻解决问题,这可能会很困难。这导致我不得不在以后尝试将一个分支中的更改改装回默认值 我知道我们可以将VS2005和VS2008项目之间的更改存储在修补程序队列中,但我是团队中唯一一个习惯使用命令行的人,我的同事
进一步编辑,使用解决方案 经过更多的努力,我找到了一种方法,可以让这个工作流程与标准的陆龟工具一起工作,而命令行干预只需要进行设置 首先,我更新回项目从VS2005转换到VS2008的变更集。我备份了那个版本,创建了一个备份补丁,并剥离了备份的变更集(因为它在默认分支中)。然后,我将回退补丁应用于转换变更集(使用:hgpatch--no-commit补丁),然后使用新的“VS2005”分支名称提交补丁。然后,我合并到(未命名)VS2005分支的顶端 下一步是更新到(未命名的)VS2008分支的旧提示,进行无关紧要的更改,并将其作为新的“VS2008”分支提交。然后,我合并了VS2005提示中的更改,但是当我提交时,不允许提交对csproj文件的更改。然后,我在提交后还原了这些文件 最后,我更新了VS2005提示并合并到VS2008提示中 这导致了两个提示,它们的代码都相同,但由于VS2005到VS2008的转换而产生的差异除外 新工作流程:
- 根据需要在VS2005或VS2008分支机构工作
- 在一个分支中完成更新后,更新到另一个分支,合并中修改的分支中的更改并提交到它自己的分支。然后更新回您首选的分支
- 如果更新同时发生在两个分支中,则分别执行两个分支,即,。更新到VS2005提示并合并到VS2008提示中,然后更新到VS2008提示并合并到上一个(预合并)VS2005提示中