群英汇 TopGit 改进 (2): tg 导出全部分支
实际上这个补丁 export_quilt_all 才是我们在 topgit 上的第一个补丁。那么是什么原因导致我们奇痒无比,需要改动 Topgit 的代码呢?
我们使用 topgit 维护了几个开源项目,其工作模式是在几个特性分支中工作,工作结束后,将特性分支导出到 Quilt 格式的补丁列表。导出特性分支为 quilt 补丁的命令行是:
- 将当前工作的特性分支及其依赖的特性分支导出到 quilt 格式的补丁中
$ tg export --quilt EXPORT_DIR
- 如果需要导出多个特性分支,需要使用命令
$ tg export -b BRANCH1,BRANCH2,... --quilt EXPORT_DIR
这个命令主要的问题是,难以维护。如果我们把导出命令写入脚本,一旦特性分支增加或者删除,还要维护脚本。
- 创建一个分支名为 t/all
- t/all 分支依赖其他所有特性分支
- 当在 t/all 分支,导出到 quilt 格式补丁列表时,包含了所有的特性分支
- 仍然难以维护。在创建一个新的特性分支时,会忘记将其加入到 t/all 的依赖中
- 当任何分支有提交,t/all 分支都要重新执行 rebase,最后导致代码库历史极为混乱
$ tg export --all --quilt EXPORT_DIR这就是我们的 “tg 导出全部分支”的补丁。参见: