2013-04-28 47 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將源文件推送到遠程服務器。