我从互联网上分配了一个项目,我想写一些新功能。我想同时写几个正交的功能,(例如,调试助手,新功能X,新功能Y),并在我当前目录中拥有所有这些功能的代码,但是当我提交时,我希望能够说“这些文件转到分支'debug'”,“那些文件转到分支'特征X'”,等等。这些是'hg branches'意义上的分支。
原因是上游项目可能不想合并我的调试助手或黑客修复错误,但我当然希望在开发我的功能时使用它们。
实际上,我只是想将这些文件中的更改应用到分支机构,但是要检查几个分支机构。合并到我当前的工作目录。
这可能吗?也许有一些hg扩展来做到这一点?
谢谢!
答案 0 :(得分:1)
查看mercurial queues (MQ),了解调试助手或本地黑客等内容。对于您只想在本地修改并可能要应用于任何修订/分支的修补程序非常有用。
使用分支做同样的事情变得乏味恕我直言,因为你必须非常小心地对不同分支上的调试和功能进行更改,然后将它们合并到本地的一次性分支中以便运行任何东西。您可以在功能分支上使用大量更改集,使树处于损坏状态,因为您只能在提交后进行测试。
答案 1 :(得分:0)
我不完全理解你为什么要这样做。如果您的要素是正交的,则可以单独处理它们,直到它们准备好合并为止。毕竟这正是分支的意义所在!
但要回答您的问题:您可以在分支上commit
,然后,作为工作流程,始终up
默认并merge
它。这将保持默认分支作为其他功能的总和。在提交之前,您需要update
到功能分支,但这可能会很乏味。
post-facto 确定要提交哪个分支的另一个选项是使用rebase
扩展名。在这种情况下,您将提交更改,然后执行hg rebase -d targetBranch
。
但我不建议将历史记录修订作为标准工作流程的一部分。这对我来说很有气味。