我从brnch
创建了一些分支(称之为default
)并在那里做了一些提交。现在需要从分支中挑选所有差异到某个发布分支以进行修补。在mercurial这样的事情是可能的吗?
^ ^
| |<--- brnch
| - commit3
| |
| - commit2
- |
| |
| - commit1
- |
| |
| |
|--
|
-
default
是否可以从分支brnch
(commit1,commit2,commit3)中的所有提交创建补丁并应用于其他分支(在我的情况下发布hot-fix)?
答案 0 :(得分:2)
请参阅hg help export
和hg help import
。
示例:
hg export branch(brnch) -o brnch.patch # export everything on brnch
hg export -r commit1 -r commit2 -o cherrypick.patch # cherrypick two changesets
hg update <somewhere_else>
hg import brnch.patch # import the revisions in the patch
hg import --no-commit brnch.patch # import (but don't commit) revisions.
hg commit -m hotfix # commit changes as one commit with "hotfix" description.
答案 1 :(得分:1)
您可以通过hg rebase
轻松实现这一目标。
为简单起见,我假设您希望在 brnch 中看到commit1以后的所有内容,请参阅发布分支。因此,请检查发布分支,然后重新设置 brnch 提交:
hg update release
hg rebase --source commit1 --collapse --keep --dest . --message "bla bla something fixed"
或者,您可以提供修订范围。如果你想看到崩溃的提交在 brnch 分支中是非线性的,那么你将需要求助于移植(这是挑选个人提交) - 你可以崩溃({{1 }})随后在发布分支中的所有嫁接变更集,前提是您最初将它们保留在阶段草稿中。