jer*_*bos 12 git ubuntu repository gitolite
我有一个工作的gitolite服务器.但是,我想将它移动到相同的配置,但是在更大的机器上.即使我有gitolite工作,我不确定它下面的字符串.主要是它与ssh的关系.
我想安装gitolite,git-core软件包.并移动git用户的存储库目录.没有钥匙需要改变.它是否正确 ?什么是gitolite对当前服务器的配置关系.我正在使用Ubuntu
我特别对gl-setup感到困惑,它完成了这项工作,但让我对这个过程一无所知.
谢谢
mtp*_*typ 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到这个遥控器.
您还需要移动您的ssh配置:
~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这是SSH使用的文件,由Gitolite配置,以便:
参见" Gitolite如何使用ssh "
OP确认这是问题,并指出Gitolite文档:
" 将整个事物从一台服务器移动到另一台服务器 ":(
注意:这是'g2';即Gitolite V2,但Gitolite V3的想法是相同的或'g3')
这个过程背后的想法是创建一个新的Gitolite实例,然后把你的现有Gitolite回购,这将自动重新声明在新服务器当前的所有现有密钥~/.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;
- 将
$REPO_BASE旧服务器中的内容复制到$REPO_BASE新服务器上.
默认情况下,如您所知,这些都是$HOME/repositories.chown -R如果使用root复制,则将文件发送给正确的用户.- 修理挂钩
gl-setup
- 触发推送到管理员仓库
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