托pipe多个版本库(svn,hg,git)

我最近收购了一个专用的服务器,并且需要从一个源代码pipe理托pipe服务中移动一些存储库到它。 没有太多的服务器pipe理经验,但我不知道如何有效地组织它。 我所追求的 –

  1. svn.host.com,hg.host.com,git.host.com子域名,将通过SSH密钥根据不同的回购协议
  2. 轻松创build新的存储库
  3. 使用服务器unix用户列表进行身份validation,但具有基于每个项目的权限,对于某些回购也可select只读公共访问

不幸的是,我在Google上尝试的任何search字词都会将我引导至商业托pipe解决scheme,而不是指导我如何推出自己的解决scheme。 我需要一个简单的托pipe解决scheme,但不需要用户能够创build自己的回购站。

任何关于从哪里开始研究的build议,教程或脚本解决scheme? 一个开放源代码解决scheme的pipe理界面处理(或至less对于一些将是完美的…

我只使用Git,所以我会尽力至less帮助你:

如果你没有看到通过命令行pipe理你的回购的任何麻烦,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

任何这些选项都会让您轻松创build新的存储库。

现在,请注意一句:永远不要使用unix服务器用户列表来存储仓库权限。 这很容易搞砸,而且结果很容易造成灾难性的(gitosis使用简单的文件configuration和ssh密钥,应该为你做诡计)。

另一件事,我不明白为什么你需要颠覆,HG和Git仓库。 大多数项目只使用其中的一个选项。 谨慎地阐述为什么?

SVN可以使用Apache WebDAV在虚拟主机中使用unixauthentication和subversion自己的用户级ACL来完成。 我对mercurial或git一无所知,但我希望他们也可以被吸引进DAV。

当你想使用SSH时 ,你基本上必须通过编辑服务器上的authorized_keys文件来限制密钥。 对于Mercurial来说,主要的做法是:

  • 您可以使用contrib/hg-ssh脚本来限制用户使用SSHlogin时可以执行的命令。 该文件包含一个头解释如何使用它,但你基本上添加

     $ command="hg-ssh path/to/repo" 

    authorized_keys文件中的密钥的前面。 这限制了密钥,只能用于推送到指定的存储库。

  • 如果你想要类似gitois的东西,你也可以使用第三方的mercurial-server工具。 这让您可以通过编辑特殊pipe理存储库中的文件来pipe理用户及其访问权限。

有关其他一些类似的SSH工具,请参阅Mercurial wiki 。

对于HTTP ,有

  • Mercurial附带的内置hgweb (Fast)CGI或WSGI脚本。 这处理推和拉,但不允许创build新的存储库 – login到服务器。

  • 第三方RhodeCode项目。 这为您提供了一个类似于Bitbucket的Web前端,可以configuration用户及其访问权限。 它支持LDAPauthentication,所以你可以把它挂到你现有的Unix用户数据库中。

有关更多信息,请参阅发布存储库页面 。

SCM-Manager可能会满足您的需求:

通过http共享和pipe理Git,Mercurial和Subversion版本库的最简单的方法。

  • 非常容易安装
  • 无需破解configuration文件,SCM-Manager完全可以从其Web界面进行configuration
  • 不需要Apache,也不需要安装数据库
  • 中央用户,组和权限pipe理
  • 开箱即用的支持Git,Mercurial和Subversion
  • 完整的RESTFul Web服务API(JSON和XML)
  • 丰富的用户界面
  • 简单的插件API
  • 有用的插件可用(fe Ldap-,ActiveDirectory-,PAM-authentication)

RhodeCode是一个开放源代码库浏览器/pipe理工具,内置推/拉服务器,LDAP / AD,权限系统和全文search。

你可以在这里看到它: http : //demo.rhodecode.org/