只有在gitolite迁移后,Git存储库才会被读取

时间:2015-05-16 13:02:55

标签: git gitolite

[我找到了解决方案并在我的回复中描述]

我前一段时间迁移了我的gitolite服务器,并在同一时间从gitolite 2升级到gitolite 3。 我刚刚意识到虽然所有存储库都在努力获取数据,但在尝试推送其中一个存储库时,我遇到以下错误:

remote: Use of uninitialized value in do "file" at hooks/update line 36.
remote: Null filename used at hooks/update line 36.
remote: error: hook declined to update refs/heads/candidates/my-branch

我知道这个错误通常意味着存在ssh密钥或权限问题,但我的gitolite.conf文件非常简单,并且ssh密钥与其他存储库一起使用并且可以从此服务器获取

当我尝试使用ssh密钥直接ssh服务器时,会显示以下消息:

PTY allocation request failed on channel 0
hello Fred, this is gitolite3@my-server running gitolite3 v3.6.2-26-gf9c0008 on git 1.9.1

 R W    repo1
 R W    repo2
 R W    gitolite-admin
Connection to my-server closed.

repo1是不起作用的,而repo2和gitolite-admin都运行良好。

我真的不知道接下来要去哪看,要调试一下。

更新: 我不知道它是否可以相关,但我注意到我的服务器上有问题的存储库目录与其他存储库目录具有不同的权限(766而其他700则存在)。我改变它没有结果,但也许它可以暗示其他东西?

更新2: 此外,这个有问题的存储库是在其他库之前创建的。使用旧版本的git创建的存储库是否存在兼容性问题?

1 个答案:

答案 0 :(得分:1)

我设法解决了我的问题。

我注意到所有正在运行的存储库都在repo.git/.中有他们的HEAD文件,分支目录等,而故障存储库包含了repo.git/.git/.中的所有存储库所以我执行了以下操作:

cd ${GITOLITE_HOME}/repositories/repo.git
mv .git/* .
rm -rf .git
gitolite setup

它开始工作了。