在redmine中自动更新git repos

时间:2010-11-08 01:35:24

标签: git

我希望git repos可以在redmine中访问。但是如何自动更新redmine git repos。我以为redmine会“读取”git repos,但它想拥有自己的本地副本。因此,出现了最新的redmine回购问题。

我发现使用cron的解决方案很少,但如果可能的话我宁愿使用git hook。如果存储库更新也更新redmine存储库,任何想法如何制作git?

redmine wiki提供此解决方案,但我不明白它的作用。也许这就是我想要的?有人可以解释下面的代码吗?

echo "Post receive-hook => updating Redmine repository" 
sudo -u my_redmine_user -p secret perl -we '`cd /redmine/repositories/my_repo.git && git fetch && git reset --soft refs/remotes/origin/master`'

1 个答案:

答案 0 :(得分:4)

看起来它应该放在你的中央仓库的post-receive钩子里。每当你推入回购时,都会执行该钩子,因此它是触发其他操作的理想位置。 (当然,更新后的钩子也是一个合理的地方。)

令人惊讶的是,钩子是在一个裸仓库的hooks目录中(.git/hooks用于非裸仓库)。如果你还没有post-receive钩子,你可以创建一个:在hooks目录中创建一个名为post-receive的文件,使其成为可执行文件,将#!/bin/sh放在第一行,然后是那两行。如果已经有一个,只需添加这两行。由于post-receive主要用于通知类型操作,因此脚本很容易成为这样的事情列表。