我正在尝试安装 mercurial-server。将密钥添加到keys/root
并刷新身份验证后,我尝试克隆 hgadmin-repo 但出现以下错误:
$ hg clone ssh://hg@<domain>/hgadmin
remote: mercurial-server: no such repository hgadmin
abort: no suitable response from remote hg!
有谁知道是什么问题?
我正在尝试安装 mercurial-server。将密钥添加到keys/root
并刷新身份验证后,我尝试克隆 hgadmin-repo 但出现以下错误:
$ hg clone ssh://hg@<domain>/hgadmin
remote: mercurial-server: no such repository hgadmin
abort: no suitable response from remote hg!
有谁知道是什么问题?
我遇到了同样的问题,对我来说这是安装 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/
非常感谢兰迪在这里揭露了确切的问题。
我在同样的问题上苦苦挣扎,并找到了解决它的替代方法(无需清除和重新安装)。
您可以手动初始化 hgadmin repo 并安装 hooks,达到与正常安装相同的效果。不过,您需要将其作为“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 存储库(我部署在 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
您确定您的克隆命令语法正确吗?我看到其中至少有两个错误:
示例FAILING(缺少源代码库并且在 'home' 之前仅使用一个 '/')
$ hg clone ssh://John@127.0.0.1/home/John/delme
示例失败(缺少源代码库)
$ hg clone . ssh://John@127.0.0.1/home/John/delme
示例成功:
$ hg clone . ssh://John@127.0.0.1//home/John/delme