我在windows vista pc上运行cygwin。我成功安装了sshd,配置并构建了gitosis。 我可以远程git克隆gitosis-admin.git存储库,对配置进行了更改,提交并成功推送回cygwin机器。
但是,更新后没有执行,并且尚未创建新的存储库(在配置中指定)。
我跑了:
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
和ls -l显示以下内容:
-rwxr-xr-x 1 git None 69 2010-04-13 22:55 post-update
然而,当我跑:
./post-update
我收到以下错误:
ERROR:gitosis.run_hook:Must have GIT_DIR set in enviroment
我已经在我的git .bashrc中包含了这一行:
GIT_DIR=$HOME/repositories/gitosis-admin.git/
如果我在提示符下输入Set,我可以看到:
GIT_DIR=/home/git/repositories/gitosis-admin.git/
我还能尝试什么,因为我没有想法。
答案 0 :(得分:1)
首先,不要设置GIT_DIR
- 它不应该是必需的。
其次,我相信你的问题是你已经为你的Gitosis配置添加了一个新的repo的写权限,但是当你推送你的配置时它没有被创建。这是因为在你的Gitosis配置中添加一个新的repo不会创建它 - 它只是给用户权限来创建它。
例如,假设你添加这个你的Gitosis配置:
[group new_repo]
members = me
writable = new_repo
当您推出更改时,new_repo
无法创建 - 您只需拥有创建它的权限。为了在服务器上实际创建它,在本地计算机上创建repo,然后将Gitosis服务器添加为远程服务器:
$ git remote add gitosis git@git.example.com:new_repo.git
然后将其推出:
$ git push gitosis master
执行git push
时会创建新的仓库。