移动gitolite服务器

我有一个工作的gitolite服务器。 不过,我想把它移动到一个相同的configuration,但在一个更大的机器上。 即使我有gitolite工作,我不知道它下面的string。 主要是与ssh的关系。

我想只安装包gitolite,git-core。 并移动git用户的存储库目录。 没有一个键需要改变。 它是否正确 ? gitolite对当前服务器有什么configuration关系。 我正在与Ubuntu合作

我被gl-setup弄糊涂了,这个工作完成了,但是把这个过程留给了我。

谢谢

你将需要的也是移动你的SSH配置:

~/.ssh/authorized_keys 

这是SSH使用的文件,由Gitolite配置为了:

  • 列出所有授权的公钥
  • 将其与强制命令脚本相关联
  • 将正确的用户名传递给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_CONFGL_PACKAGE_HOOKS )是依赖于安装的,不应该被触摸!
    做一个diffvimdiff ,只复制你知道你在旧服务器上更改的内容。
  • 禁用旧服务器,以便用户不会对其进行任何更改。
    有几种方法可以做到这一点,但最简单的方法是在旧服务器的~/.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复制):

  1. 在新服务器上安装gitolite,使用与旧服务器相同的密钥作为管理员。

  2. 从旧服务器复制.gitolite.rc文件,覆盖这个。

  3. 禁用旧服务器,以免人们推送到它。 有几种方法可以做到这一点,但最简单的是插入exit 1; 在旧服务器上的~/.gitolite.rc的顶部:

  4. 从旧的服务器复制所有的回购,包括gitolite-admin 。 确保文件最终拥有正确的所有权和权限; 如果没有,chown / chmod它们。

  5. 运行gitolite setup

  6. 在旧的gitolite-admin的克隆上,添加一个新的远程(或更改一个现有的)以指向新的服务器。 然后git push -f到这个远程。