1

我从互联网上分叉了一个项目,我想写一些新功能。我想同时编写几个正交功能(例如调试助手、新功能 X、新功能 Y),并将所有这些功能的代码放在我的当前目录中,但是当我提交时,我希望能够说“这些文件转到分支'debug'”,“这些文件转到分支'feature X'”等等。这些是'hg分支'意义上的分支。

这样做的原因是上游项目可能不想合并我的调试助手或被黑的错误修复,但我当然想在开发我的功能时使用它们。

实际上,我只想将这些文件中的更改应用到分支,但保留多个分支检出并合并到我当前的工作目录。

这可能吗?也许有一些 hg 扩展来做到这一点?

谢谢!

4

2 回答 2

1

查看mercurial queues (MQ)以了解调试助手或本地黑客等内容。对于您只需要在本地并且可能希望应用于任何修订/分支的补丁非常有用。

恕我直言,对分支做同样的事情变得乏味,因为您必须非常小心地对不同分支上的调试和功能进行更改,然后将它们合并到本地的一次性分支中以运行任何东西。您最终可能会在功能分支上产生大量变更集,从而使树处于损坏状态,因为您只能在提交后进行测试。

于 2012-07-30T13:31:09.483 回答
0

我不完全明白你为什么要那样做。如果您的特征是正交的,您可以独立处理它们,直到它们准备好合并。毕竟,这正是分支的用途!

但是要回答您的问题:您可以commit在一个分支上,然后作为工作流程的问题,始终up默认并将merge其放入。这将使默认分支保持为其他功能的总和。不过,您需要update在提交之前访问功能分支,这可能会变得乏味。

事后确定要提交到哪个分支的另一个选项是使用rebase扩展。在这种情况下,您将提交您的更改,然后执行hg rebase -d targetBranch.

不过,我不建议将历史修订作为标准工作流程的一部分。这对我来说很臭。

于 2012-07-27T16:38:10.553 回答