我看了群英汇关于 topgit 的相关文章,感觉受益菲浅。但是一直有个疑问,就是怎样将所有特性分支集中起来,生成最终版本并编译,是否只能用 tg export --all 功能来操作?
我们的使用经验就是这样的。 :-)
- 使用 "tg export --all --quilt" 命令将特性分支导出成 Quilt 格式的补丁集合。
- 然后在用 quilt 命令将代码补丁合并到代码树中。
- 我们主要将产品生成 Debian/Ubuntu 上的安装包,在打包过程中,Debian 的打包脚本支持 Quilt 格式的补丁列表。
在我们 Hack Topgit,为其导出命令增加 --all 参数之前,我为导出所有的补丁曾经非常苦恼,使用了一个笨笨的方法:
- 创建一个名叫 t/all 的分支,依赖其它所有的分支
- 然后导出 t/all 分支,即导出了所有的分支
- 而且 t/all 分支本身,就已经包含了所有补丁,所以你可以直接在 t/all 分支上编译。
不过这么做,可能会因为分支之间的依赖处理不好,导致 t/all 分支上进行 update 时出现稀奇古怪的错误。
我想 topgit 的 export 命令不支持 --all ,可能是原作者开发时,特性分支都是一个依赖另一个,所以导出一个就全都导出了。这很像 Hg/MQ 的工作模式,但这并不符合开发实际。