我打算把 README 写到 Commentary,然后用一个 elisp 函数从 Commentary 导出 README.md
。
为了防止我偷懒、直接修改 REAME.md 文件,想到了 git hook。但是在 github 端肯定没有 elisp 函数可用,所以 webhook 先不考虑。
现在我本地设置一个 hook,push 之前再导一遍 README 内容,看看是否跟 README.md
文件一致。这个校验过程放在测试文件里,如果有人(万一呢)提交 pr,这个测试也会被 Traivis 执行到。
这样做有两个问题:
-
hook 是不受 git 管理的,所以必须以普通文件的形式纳入管理:
- .githooks/pre-push
- .githooks/init-hooks.sh
克隆之后还需执行一次
init-hooks.sh
才能使 hook 生效,感觉有点多余。 -
如果生成(或修改)了 README.md 但没有 commit 进仓库,pre-push 能过(应该强制 README 修改之后必须 commit?),但推送到 github 之后导致 travis 通不过(因为我是拿测试用来检验 README 的,这也许不是个好主意)。
有更好的建议吗?