[有问有答] 如何用 git 来管理你的打包工作

Q: 我看到很多包的 debian/control 里面有 Vcs-Git 和 Vcs-Browser 这样的字段, 这个是什么意思?
A: Vcs 的全称是 Version Control System, 即版本控制系统, 使用这两个字段表明打包工作使用了 Git 来协助管理的, 比如 chmsee 的 debian/control 就有如下的两行:

Vcs-Browser: http://git.debian.org/?p=chinese/chmsee.git
Vcs-Git: git://git.debian.org/git/chinese/chmsee.git

这个表示, 如果你要在线查看打包的情况, 那么就直接访问 http://git.debian.org/?p=chinese/chmsee.git
如果你要下载他的打包工作, 那么就运行 git clone git://git.debian.org/git/chinese/chmsee.git

使用版本管理来协助打包是有几个好处的

  1. 首先是常规版本管理带来的好处, 比如误删了文件可以马上恢复, 在多个机器上工作时可以很方便地同步, 一个复杂的工作切成多步后会更加清晰, 出现错误后能方便追踪
  2. 另外就是方便其他开发人员为你提交补丁, 他的补丁可以直接基于你最新的工作, 而不是基于你发布出去的那个版本, 这样能减少你合并补丁时的工作量
  3. 现在 debian 的包管理工作也在逐步演化为一组人管理一组包, 这样的好处是单个人由于某些原因离开 Debian 时,他的包不至于荒废(看着身边的朋友一个个转投 Apple 的怀抱, 我真得很伤心), 而一组人一起管理包时,版本管理系统就成为必须了

下面我就用 chmsee 来演示一下如何把一个包转为 git 管理

  1. 你要安装一些 git 工具包: sudo apt-get install devscripts git-buildpackage gitk git-gui
  2. 找一个空目录, 然后用如下的命令下载 chmsee 的源码包: dget http://ftp.debian.org/debian/pool/main/c/chmsee/chmsee_1.1.0-1.dsc (如果年代久远, 这个 URL 不再可用, 请到QA页面查找新链接)
  3. 运行 git import-dsc chmsee_1.1.0-1.dsc, 这时会创建出一个新目录: chmsee
  4. 进入 chmsee 目录, 运行 gitk --all, 可以看到已经有两个分支(master 和 upstream), 和两个 tag (upstream/1.1.0 和 debian/1.1.0-1)
  5. 运行 debuild -i.git 编译

日常操作: 发布新版本:

  1. 下载新版本, 比如 chmsee-1.1.1.tar.gz
  2. 在 chmsee 目录运行 git import-orig ../chmsee-1.1.1.tar.gz
  3. 运行 dch -v 1.1.1-1, 加入一行 new upstream release, 保存
  4. 运行 git add debian/changelog
  5. 运行 debcommit
  6. 运行 debuild -i.git 编译

如果你对 git 的操作本身已经非常熟悉, 那么 git-buildpackage 上手也没有什么难度。如果你对 svn 更拿手, 那么可以考虑使用 svn-buildpackage.

posted @ 2010-05-20 22:58 LI Daobing 阅读(...) 评论(...) 编辑 收藏