【发布时间】:2013-05-01 20:05:40
【问题描述】:
我知道网上有一些与这个话题相关的问题,但是我把它们挖出来后仍然无法解决。
在服务器端,我有一个存储库位于:/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:///gitrepo/kindtest.git 进行 http 推送时,我总是收到一个错误,说远程不支持智能 http 推送。
额外信息:我还通过 /etc/apache2/conf.d/gitweb 启用了 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
客户端:使用 egit 进行eclipse
我有什么遗漏的吗?
【问题讨论】:
-
通过命令行 git 推送是否适用于指定的 URL?
-
@robinst 是的,刚刚尝试过,在 CLI 下推送可以工作,但不能使用 egit,猜测 egit 需要在服务器上设置智能 http。
标签: eclipse git http push egit