我有一个工作的gitolite服务器。 不过,我想把它移动到一个相同的configuration,但在一个更大的机器上。 即使我有gitolite工作,我不知道它下面的string。 主要是与ssh的关系。
我想只安装包gitolite,git-core。 并移动git用户的存储库目录。 没有一个键需要改变。 它是否正确 ? gitolite对当前服务器有什么configuration关系。 我正在与Ubuntu合作
我被gl-setup弄糊涂了,这个工作完成了,但是把这个过程留给了我。
谢谢
你将需要的也是移动你的SSH配置:
~/.ssh/authorized_keys
这是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
的顶部插入这一行:
出口1;
- 将旧服务器中的
$REPO_BASE
的内容复制到新服务器上的$REPO_BASE
。
默认情况下,这些都是$HOME/repositories
。- 如果使用root复制,将文件复制到正确的用户。
- 修理钩子
GL-设置
- 触发管理回购
git克隆版本库/ gitolite-admin.git / tmp / gitolite-admin cd / tmp / gitolite-admin git commit --allow-empty -m'在新服务器上触发编译' gl-admin-push -f
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
到这个远程。