Eclipse总是抱怨远程git不支持智能HTTP推送



我知道网上有一些关于这个话题的问题,但是我翻出来还是没有解决。

在服务器端,我有一个存储库位于:/opt/gitrepo/kindtest。在/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推送。

额外信息:我还启用了/etc/apache2/conf.d/gitweb:

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>

服务器端:git版本1.7.9.5,并且在kindtest.git/config中:

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

客户端:eclipse with egit

我错过了什么吗?

我终于弄清楚了,这是git-http-backend,没有这么聪明的http总是被禁用。我删除了"Alias/gitrepo/opt/gitrepo"这一行,它与第二个ScriptAlias重叠。现在我可以使用egit将源代码推送到远程服务器。

最新更新