2013-04-28 46 views
3

我知道在互联网上有一些与这个主题相关的问题,但我仍然无法解决问题后挖出来。eclipse总是抱怨远程git不支持智能http推送

在服务器端,我有一个资料库位于:/opt/gitrepo/kindtest.git,并在/etc/apache2/conf.d/git,我写道:

Alias /gitrepo /opt/gitrepo 
SetEnv GIT_PROJECT_ROOT /opt/gitrepo/ 
SetEnv GIT_HTTP_EXPORT_ALL 
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER 
ScriptAliasMatch \ 
    "(?x)^/gitrepo/(.*/(HEAD | \ 
        info/refs | \ 
        objects/(info/[^/]+ | \ 
          [0-9a-f]{2}/[0-9a-f]{38} | \ 
          pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ 
        git-(upload|receive)-pack))$" \ 
    "/usr/lib/git-core/git-http-backend/$1" 
<Location /gitrepo> 
    Options +Indexes +FollowSymLinks +ExecCGI 
    #AuthType Basic 
    #AuthName "git repository" 
    #AuthUserFile /var/git/.htpasswd 
</Location> 

重新启动后apache,我可以通过http:/// gitrepo /在浏览器中查看我的git存储库。 但是,当我尝试使用eclipse执行http推送到http:///gitrepo/kindtest.git时,我总是收到一个错误消息,指出远程不支持智能http推送。

额外的信息:

Alias /gitweb /usr/share/gitweb 
<Directory /usr/share/gitweb> 
    Options FollowSymLinks +ExecCGI 
    AddHandler cgi-script .cgi 

    AuthType Basic 
    AuthName "Gitweb" 
    AuthUserFile /home/.htpasswd 
    Require valid-user 
</Directory> 

服务器端:我也有过由/etc/apache2/conf.d/gitweb启用的GitWeb Git版本1.7.9.5,并在kindtest.git /配置:

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = true 
[http] 
    getanyfile = true 
    uploadpack = true 
    receivepack = true 

客户端:日食与例如:It

有什么我错过了什么?

+0

通过命令行git推送是否适用于指定的URL? – robinst 2013-04-28 12:30:08

+0

@robinst是的,刚刚尝试过,推动CLI下的作品,但不是与egit,猜测egit需要服务器上的智能http设置。 – Kevin 2013-04-30 03:50:59

回答

2

我终于明白了这一点,它是git-http-backend不起作用,所以智能http被alwasy禁用。我删除了重叠第二个ScriptAlias的行“Alias/gitrepo/opt/gitrepo”。现在我可以使用egit将源文件推送到远程服务器。