1

我在公司的服务器上安装了 gitolite v2,现在我必须管理它。由于那里真的很混乱,我决定安装一个新的,现在是 v3。我有大约 8 个存储库要移动到新安装中。

我不需要旧的 .rc 文件或任何配置,只需要(工作!)$GIT_HOME/repositories/*.git

我尝试了什么:(在寻找解决方案时发现)
全部复制$GIT_OLD_HOME/repositories/*.git$GIT_HOME/repositories/*.git(gitolite-admin.git 和 testing.git 除外)

然后我gitolite-admin.git/conf/gitolite.conf用这种条目更新了(通过克隆和推回更改):

repo myrepo1
RW+ = @all

现在,如果我想克隆 gitolite-admin 或测试以外的任何东西,它会说:
FATAL: R any myrepo1 myusername DENIED by fallthru

我检查过的几件事:
ls -l $GIT_HOME -> gitolite:gitolite 没关系,我想因为 gitolite 是我要使用的用户,所以
我对目录中的所有条目都做了相同的repositories操作,并且权限是相同的。

我正在谷歌搜索解决方案,但我没有找到适合我的情况。如果您可以帮助我或建议我任何事情,请不要退缩:)

如果您需要更多详细信息来找出答案,请告诉我。

4

2 回答 2

1

我遇到了同样的问题,升级没有正常工作,所以我使用了以下策略 - 粗体文本表示执行步骤的位置:

1-新:安装 Gitolite ( https://github.com/sitaramc/gitolite )。

2-工作站:在一个新的空目录中克隆旧版本的 gitolite-admin 并将其重命名为gitolite-admin-old. 删除 gitolite-admin-old/conf/gitolite.conf 中除您自己以外的所有用户的访问权限 - 在迁移存储库时禁止任何人进行任何更改。

3-工作站:从旧 Gitolite 克隆所有存储库。git clone git@oldserver.com:repo.

4-旧的:我们已经从旧的存储库中得到了我们想要的东西。exit 0通过在文件顶部添加来永久禁用旧 gitolite .gitolite.rc

5-工作站:从新服务器克隆 gitolite-admingit clone git@newserver.com:gitolite-admin gitolite-admin-new

6-工作站:将密钥从 复制gitolite-admin-old/keydir到,使用用户权限gitolite-admin-new/keydir将要传输的存储库添加到新的存储库中。gitolite-admin-new/conf/gitolite.conf添加、提交和推送。

7-工作站:将每个所需的存储库推送到新服务器

git push --all git@newserver.com:repo
git push --tags git@newserver.com:repo
or
git push --mirror git@newserver.com:repo

8-工作站:从每个工作仓库更改 DNS 或远程 URL。

希望这可以帮助

于 2014-01-30T12:26:38.583 回答
0

确保您已迁移.gitolite.rc文件,如g2->g3 迁移页面中所述

如果您从 g2 迁移,在运行 gitolite setup 之前必须处理一些设置;请阅读迁移页面和链接页面,尤其是“预设 rc 文件”

g3 的 rc 文件与 g2 的 rc 文件完全不同。

或者,如果您不需要旧的,正如您所提到的,请确保默认新的内容具有适当的值。

确保您的新~git/.ssh/authorized_keys文件中确实包含一行myusername


OP Attila Horvath 证实

注意:任何 gitolite 中的任何内容install/setup/etc都不会触及除gitolite-adminrepo 之外的任何存储库中的数据。它通常会在正常存储库中触及的唯一内容是更新挂钩。”

最后一句话引起了我的注意,现在看来这就是问题所在。
我首先安装了 gitolite 然后在那里复制了 repos,所以我不得不再次运行gitolite setup -pk mykey.pub,现在它似乎工作了

于 2013-03-20T12:17:09.483 回答