安装mercurial-server时“没有这样的存储库hgadmin”。

时间:2010-04-01 17:12:49

标签: mercurial mercurial-server

我正在尝试安装mercurial-server。将我的密钥添加到keys/root并刷新auth后,我尝试克隆hgadmin-repo,但是我收到以下错误:

$ hg clone ssh://hg@<domain>/hgadmin
remote: mercurial-server: no such repository hgadmin
abort: no suitable response from remote hg!

任何人都知道这是什么问题?

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,对我而言,安装hgadmin存储库时遇到了问题。当我安装软件包时,我从python中得到错误,说没有安装mercurial软件包。我假设当mercurial-server尝试初始化hgadmin存储库时发生了这种情况。所以当我去结账hgadmin respistory时,没有.hg目录:

root@myshost:/var/lib/mercurial-server/repos# cd hgadmin/
root@myshost:/var/lib/mercurial-server/repos/hgadmin# ls -a
.  ..

为了解决这个问题,我做了:

easy_install mercurial
sudo apt-get purge mercurial-server
sudo rm -rf /var/lib/mercurial-server
sudo apt-get install mercurial-server

然后继续这里的指示:

http://kurtgrandis.com/blog/2010/03/20/gitosis-for-mercurial/

答案 1 :(得分:2)

非常感谢 Randy 在这里公开确切的问题。

我遇到了同样的问题,并找到了解决问题的替代方法(无需清除和重新安装)。

您可以手动初始化hgadmin repo并安装挂钩,达到与普通安装相同的效果。你需要以“hg”用户的身份使用它。

程序

这些命令适用于我的环境(Ubuntu 10.04.4 / Hg 1.4.3)

首先在 / var / lib / mercurial-server / repos / hgadmin 中初始化一个mercurial存储库:

$ sudo su hg
$ cd ~/repos/hgadmin/
$ hg init

然后我发现与正常初始化的hgadmin repo(我部署在VM中进行比较)的唯一区别是 .hg / hgrc 文件中的钩子。所以打开文件:

$ vim .hg/hgrc

并粘贴此确切内容:

# WARNING: when these hooks run they will entirely destroy and rewrite
# ~/.ssh/authorized_keys

[extensions]
hgext.purge =

[hooks]
changegroup.aaaab_update = hg update -C default > /dev/null
changegroup.aaaac_purge = hg purge --all > /dev/null
changegroup.refreshauth = python:mercurialserver.refreshauth.hook

答案 2 :(得分:0)

您确定克隆命令语法是否正确?我看到其中至少有两个错误:

  1. 您必须放置您正在克隆的仓库(不仅仅是目的地)
  2. 就像推送一样,你必须在hgadmin之前使用两个斜杠:
  3. 示例 FAILING (缺少源代码库,在'home'之前只使用一个'/')

     $ hg clone ssh://John@127.0.0.1/home/John/delme
    

    示例 FAILING (缺少源代码库)

     $ hg clone . ssh://John@127.0.0.1/home/John/delme
    

    示例 SUCCEEDING

     $ hg clone . ssh://John@127.0.0.1//home/John/delme