hggit从Lion部署到heroku



我的Lion机器上有这个应用程序,它位于mercurial存储库中,所以我使用hg-git将其部署到heroku。

~/.hgrc

[extensions]
hgext.bookmarks =
hggit =

/项目/.hg/hgrc

[paths]
default = https://validhgrepo.com
[alias]
push-heroku  = push git+ssh://git@heroku.com:appname.git

然后,当我运行hg-push-heroku时,它应该部署,但我得到了:

caseys-MacBook-Air:project casey$ hg push-heroku
pushing to git+ssh://git@heroku.com:appname.git/
creating and sending data
["git-receive-pack 'appname.git/'"]
 !  Invalid path.
 !  Syntax is: git@heroku.com:<app>.git where <app> is your app's name.
abort: git remote error: The remote server unexpectedly closed the connection.

这没有任何意义。我觉得错误消息是误导性的,因为该存储库确实存在。

此外,这在我的ubuntu机器上也非常适用,具有类似的设置。

原来这与这个问题有关。我以前没有注意到多余的斜线。我应用了一个类似于这个家伙的补丁,它对我有效(在最新的hg、hggit和osx上)。

如何安装补丁的完整细节:

  1. 首先卸载它

    sudo easy_install -m 'hg-git'
    
  2. 然后删除~/Library/Python/2.7/site-packages 中的hg git egg文件

  3. 作为目录安装

     sudo easy_install -Z 'hg-git'
    
  4. open~/Library/Python/2.7/site packages/hg_git…./hggit/git_handler.py

  5. 手动应用补丁(我的更像1118线)

    --- git_handler.py  Thu Jul 28 22:05:45 2011
    +++ patched.git_handler.py  Thu Jul 28 22:11:44 2011
    @@ -1066,6 +1066,8 @@
                    port = None
                    host, path = hostpath.split(hostpath_seper, 1)
    +               if (host.find('heroku') > 0):
    +                    path = path.rstrip('/')
                    if hostpath_seper == '/':
                    transportpath = '/' + path
                    else:
    

您的git远程格式被破坏了。

在.git/config中,确保您的遥控器采用以下格式:

git@heroku.com:appname.git

其中appname是您在Heroku 上的应用程序名称

相关内容

  • 没有找到相关文章

最新更新