我有一个工作的gitolite服务器。但是,我想将它移动到相同的配置,但是在更大的机器上。即使我有gitolite工作,我不确定它下面的字符串。主要是它与ssh的关系。
我想安装gitolite,git-core软件包。并移动git用户的存储库目录。没有钥匙需要改变。它是否正确 ?什么是gitolite对当前服务器的配置关系。我正在使用Ubuntu
我特别对gl-setup感到困惑,他完成了这项工作,但让我对这个过程一无所知。
由于
答案 0 :(得分:14)
Gitolite V3的说明已经改变
(从http://gitolite.com/gitolite/rare.html复制):
使用与管理员相同的密钥在新服务器上安装gitolite 至于旧服务器。
从旧服务器复制.gitolite.rc
文件,覆盖此文件。
禁用旧服务器,以便人们不会推送它。有几种方法可以做到这一点,但最简单的方法是在旧服务器的exit 1;
顶部插入~/.gitolite.rc
:
从旧服务器复制所有存储库,包括gitolite-admin
。确保文件最终具有正确的所有权和权限;如果没有,chown / chmod他们。
运行gitolite setup
。
在旧gitolite-admin的克隆上,添加一个新的远程(或更改现有的远程)以指向新服务器。然后git push -f
到此遥控器。
答案 1 :(得分:9)
您还需要移动您的ssh配置:
~/.ssh/authorized_keys
这是SSH使用并由Gitolite配置的文件:
OP确认这是问题,并指出Gitolite文件:
“moving the whole thing from one server to another”:
(注意:这适用于'g2'; ie Gitolite V2,但Gitolite V3 or 'g3')
这个过程背后的想法是创建一个新的Gitolite实例,然后推送现有的Gitolite repo,将自动重新声明新服务器~/.ssh authorized_keys
中所有当前现有的密钥你。
- 安装gitolite。不要担心gl-setup步骤中使用的pubkey - 例如,这样做会很好:
ssh-keygen -q -N '' -f dummy gl-setup -q dummy.pub
- 编辑rc文件以使其与旧文件具有类似的设置。
- 不要直接复制整个文件 - 某些变量(特别是
GL_PACKAGE_CONF
和GL_PACKAGE_HOOKS
)取决于安装,不应触及!
执行diff
或vimdiff
并仅复制您在旧服务器上更改的内容。- 禁用旧服务器,这样您的用户就不会对其进行任何更改 有几种方法可以做到这一点,但最简单的方法是在旧服务器的
~/.gitolite.rc
顶部插入此行:
exit 1;
- 将旧服务器中
如果您使用root进行复制,则将文件$REPO_BASE
的内容复制到新服务器上的$REPO_BASE
默认情况下,如您所知,这些都是$HOME/repositories
。chown -R
发送给正确的用户。- 修理挂钩
gl-setup
- 触发推送到admin repo
git clone repositories/gitolite-admin.git /tmp/gitolite-admin cd /tmp/gitolite-admin git commit --allow-empty -m 'trigger compile on new server' gl-admin-push -f