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