5

我希望我的 post-receive 挂钩负责在某些条件下更新 repo 本身中的版本文件。所以,假设我的存储库中有一个文件 version.txt,我希望发布接收挂钩来更新 version.txt 中的版本字符串。

这将意味着再次推动回购。这可能吗?

谢谢!

4

2 回答 2

3

你可以在你的服务器上拥有你的 repo 的工作目录。在 post-receive 中,在工作目录上 git pull,根据需要更新 version.txt 并提交和推送。这将再次触发 post-receive,因此请注意您是如何进行条件更新的,否则它将进入一个循环。

#!/bin/sh
unset GIT_DIR
cd /path/to/repo.wd
git pull
echo "new content" > version.txt
git add version.txt
git commit -m "updating version.txt"
git push origin master
于 2011-05-09T18:32:44.157 回答
2

我宁愿不尝试进一步提交/推送,而是按顺序使用过滤器驱动程序,在结帐/更新时能够为该version.txt文件生成正确的内容(即,里面有正确的版本字符串)

在此处输入图像描述

如果smudge脚本能够识别version.txt文件的内容(即它不会将所述文件的名称/路径作为参数),它将用正确的信息替换该文件的模板部分。

于 2011-05-09T18:29:25.907 回答