【问题标题】:Git repository turned read only after gitolite migrationGit 存储库在 gitolite 迁移后变为只读
【发布时间】:2015-05-16 13:02:55
【问题描述】:

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

我不久前迁移了我的 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 创建的存储库是否存在兼容性问题?

【问题讨论】:

    标签: git gitolite


    【解决方案1】:

    我设法解决了我的问题。

    我注意到所有工作存储库的 HEAD 文件、分支目录等都在 repo.git/. 中,而故障存储库在 repo.git/.git/. 中拥有所有这些,所以我做了以下操作:

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

    它开始工作了。

    【讨论】:

    • 如果您已经解决了问题,请将您自己的答案标记为解决方案。
    • @NickVolynkin 我刚刚做了。出于某种原因,在 24 小时内您无法将自己的答案标记为解决方案,这就是我今天才这样做的原因。
    • 哦,不知道。感谢您的努力。
    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2010-12-12
    • 2020-10-25
    • 1970-01-01
    相关资源
    最近更新 更多