我最近不得不在我们的服务器上重新安装 de SO。它使用 Debian 操作系统。我已经重新安装了 gitolite3 包。在安装过程中,它要求我提供管理员 key 。我使用了在我拥有的 gitolite-admin 备份的 keydir 中的 admin.pub 中找到的完全相同的节。
然后我开始测试。我在我电脑的另一个地方克隆了 gitolite-admin 仓库。那里没有问题。我做了一个小修改并推送它。仍然一切正常。所以现在我将一个名为 aes.git 的备份复制到/var/lib/gitolite3 文件夹中。使用此命令确保权限正确:
chown -R gitolite3:gitolite3 dea.git/
然后我尝试克隆它(而且,是的,我对该存储库具有 RW+ 权限)。我明白了:
git clone gitolite3@pc00:dea.git
Cloning into 'dea'...
FATAL: R any dea admin DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
在另一个 repo 中尝试过,结果是一样的。谁能告诉我可能发生了什么?
最佳答案
嗯,我已经解决了。但是我不完全确定出了什么问题。我的理论是,这是我在复制文件时使用的 cp 命令。我认为它并没有像我预期的那样完全覆盖 .git 文件夹。
我现在所做的是:全新安装。 1) 克隆新的 gitolite-admin repo 并将旧 conf 文件的信息复制并粘贴到新文件中。 2) 将所有 key 复制并粘贴到新的 key 目录中。推送更改(这创建了所有存储库)。
然后在服务器中我使用 cp 和开关 -af(我之前没有使用过 f):
cp -af /home/gitolite_old/repositories/*.git ./
显然,我站在新的 repo 目录中。然后我做了:
chown -R gitolite3:gitolite3 *
然后它开始工作。至少前几次测试。将看看我无法访问的 repo 协议(protocol)会发生什么。
希望这对某人有帮助......
更新
系统的其他用户开始使用它没有任何问题。重新安置对他们来说是完全透明的。这奏效了。
关于git - 恢复 gitolite 备份不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097194/