oob*_*oob 11 version-control mercurial branch cherry-pick
我们有两个脑袋.一个是我们的主要开发负责人,另一个是我忘记了直到今天.我们发现了一个错误并将其修复到我们的主要开发分支中,我刚刚意识到它应该在旧分支中修复.
我认为最好在旧分支上进行更改并将其与最新分支合并,但我们并没有这样做.mercurial可以处理这个吗?我们还没有尝试过这样的事情,我无法真正理解它将如何完成.
Mar*_*ler 14
是的,你有两个不错的选择:
这个版本引入了移植命令,它可以以智能方式向后端移动."智能"是它将在内部使用合并,这意味着你得到
支持重命名:想象一下,您修复foo.c
了开发分支上的文件中的错误.在旧的维护分支foo.c
被称为bar.c
.使用hg graft
,更改foo.c
可以正确合并到旧bar.c
.
三向合并:嫁接涉及扭曲图形并在该临时图形中合并.三向合并的优点是您可以使用常规图形合并工具来解决冲突.
要将小费复制default
到old-branch
您身上,只需运行即可
$ hg update old-branch
$ hg graft default
Run Code Online (Sandbox Code Playgroud)
在我们接受移植命令之前,移植扩展是要走的路.这个简单的扩展将导出变更集作为补丁,并尝试将补丁应用到其他修订版本.
因为我们正在处理"哑"补丁,所以不会考虑重命名之类的东西,因为没有三向合并,所以你不会得到你的合并工具的支持.尽管如此,我发现移植在实践中非常有效.
使用移植很简单:
$ hg update old-branch
$ hg transplant default
Run Code Online (Sandbox Code Playgroud)
这非常接近于运行
$ hg update old-branch
$ hg export default | hg import -
Run Code Online (Sandbox Code Playgroud)
除了移植还添加了一段元数据,记录移植变更集中的原始变更集.这可以用来跳过未来的移植.
归档时间: |
|
查看次数: |
2205 次 |
最近记录: |