我正在尝试安装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!
任何人都知道这是什么问题?
答案 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)
您确定克隆命令语法是否正确?我看到其中至少有两个错误:
示例 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