托管多个存储库(svn、hg、git)

Kor*_*icz 8 hosting svn mercurial git

我最近购买了一台专用服务器,并且需要将多个存储库从源代码管理托管服务移动到它。在服务器管理方面没有太多经验,但是我不知道如何有效地组织它。我所寻求的——

  1. svn.host.com、hg.host.com、git.host.com 子域,这些子域将通过 SSH 密钥成为不同存储库的根
  2. 轻松创建新存储库
  3. 使用服务器UNIX用户列表验证,但有每个项目的基础上的权限,也可选只读公众访问一些回购的

不幸的是,我在 Google 上尝试的任何搜索词都会将我引导到商业托管解决方案,而不是指导我如何汇总自己的解决方案。我需要类似精简的托管解决方案,但不需要让用户能够创建自己的存储库。

关于从哪里开始研究的任何建议、教程或脚本解决方案?用于处理该问题的管理界​​面的开源解决方案(或至少对某些人来说是完美的...

Tia*_*oni 6

我只使用 Git,所以我至少会尝试帮助你:

如果您在通过命令行管理存储库时没有发现任何问题,gitosis 应该可以很好地解决问题。

如果你真的需要一个 web 界面,你可以看看 repo.or.cz ( http://repo.or.cz/w/girocco.git ) 或 gitorious ( http://gitorious.org/gitorious ) . Repo.or.cz 更难看,但安装起来更容易(gitorious 是开源的,但它也是支持 gitorious.org 的软件——他们没有太多动力编写好的说明)

这是更全面的选项列表:https : //git.wiki.kernel.org/index.php/GitHosting

这些选项中的任何一个都可以让您轻松创建新的存储库。

现在,提醒一句:永远不要使用 unix 服务器用户列表来获取存储库权限。它很容易弄乱,结果很容易是灾难性的(gitosis 使用简单的文件配置和 ssh 密钥。应该为您解决问题)。

另一件事,我不明白为什么您需要拥有 subversion、HG 和 Git 存储库。大多数项目只使用这些选项之一。想详细说明为什么?

  • 为什么将 unix 用户列表用于存储库是一件坏事:失去粒度,失去可移植性。如果您需要将 repos 更改为另一台服务器,则必须移动整个 unix 用户列表。如果要委派管理员权限,则必须授予 root 权限。现在,在 gitosis 上,如果你想改变服务器,你只需要克隆 repo。如果要委派管理员权限,只需将用户添加到 gitosis-admin 组。 (3认同)

小智 2

SVN 可以通过 Apache WebDAV 在虚拟主机中使用 unix 身份验证和 subversion 自己的用户级 ACL 来完成。我对 Mercurial 或 git 一无所知,但我希望它们也能与 DAV 挂钩。