使用Fabric从Bitbucket拉取hg代码
我正在尝试使用fabric来部署一个Django项目,但在运行hg pull
时遇到了这个错误:
[myusername.webfactional.com] run: hg pull
[myusername.webfactional.com] out: remote: Warning: Permanently added the RSA host key for IP address '207.223.240.181' to the list of known hosts.
[myusername.webfactional.com] out: remote: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[myusername.webfactional.com] err: abort: no suitable response from remote hg!
Fatal error: run() encountered an error (return code 255) while executing 'hg pull'
我可以在我的fab文件中正常运行其他的mercurial命令,比如hg status
和hg log
。
我在服务器上生成了一个SSH密钥,并把它添加到了我的bitbucket账户中。这是有效的,因为我可以通过SSH连接并运行hg pull
,一切正常,只有在使用fabric时出现问题。
这是我的fabfile:
from __future__ import with_statement
from fabric.api import *
env.hosts = ['myusername.webfactional.com']
env.user = "myusername"
def development():
# Update files
local("hg push")
with cd("~/webapps/mysite/mysite"):
run("hg pull")
# Update database
with cd("~/webapps/mysite/mysite"):
run("python2.6 manage.py syncdb")
run("python2.6 manage.py migrate")
# Reload apache
run("~/webapps/mysite/apache2/bin/restart")
有什么想法吗?
编辑:
我通过使用https解决了这个问题。
所以我把
hg pull
换成了
hg pull https://myusername@bitbucket.org/myusername/mysite
2 个回答
0
要使用SSH来克隆、拉取或推送BitBucket上的代码库,你需要按照以下说明进行操作(这个文档适用于Mac OSX或Linux上的Mercurial):
https://confluence.atlassian.com/pages/viewpage.action?pageId=270827678
如果你想设置其他的SSH来与BitBucket配合使用,这里有完整的文档:
1
无法重现这个问题。
zada$ fab development
[ostars.com] Executing task 'development'
[ostars.com] run: hg pull
[ostars.com] out: pulling from ssh://hg@bitbucket.org/Zada/b
[ostars.com] out: no changes found
Done.
Disconnecting from ostars.com... done.
zada$ hg --version
Mercurial Distributed SCM (version 1.6.3)
zada$ ssh ostars.com "hg --version"
Mercurial Distributed SCM (version 1.6)
zada$ fab --version
Fabric 0.9.2
可能的原因有:版本不匹配,或者只是Bitbucket上的一些小故障 :)
你可以试试 run("hg pull")
来获取更多详细信息。