无法通过smart-http推送目录

时间:2011-02-21 22:31:32

标签: git redmine smart-http

我现在已经连续两天这样做了,而且我放弃了自己找到解决方案。 我试图在服务器上设置Redmine - 那部分进展顺利。我也在尝试安装一个git存储库,但是虽然我已经能够通过SSH克隆并完美地完成,但是我通过HTTP做了相同的事情。

首先,这是详细的git push错误:

=============================================== =================

$ GIT_CURL_VERBOSE = 1 git push http://192.168.0.13/gitweb/Project master *无法在_netrc文件中找到主机192.168.0.13;使用默认值 *即将连接()到192.168.0.13端口80(#0) *尝试192.168.0.13 ... * 0x20ab4f0在发送管头! *连接到192.168.0.13(192.168.0.13)端口80(#0)

  

GET / gitweb / Project / info / refs?service = git-receive-pack HTTP / 1.1   User-Agent:git / 1.7.4.3282.g844cb   主持人:192.168.0.13   接受: /   Pragma:no-cache

  • 请求的网址返回错误:403
  • 过期已清除
  • 关闭连接#0
  • 无法在_netrc文件中找到主机192.168.0.13;使用默认值
  • 关于connect()到192.168.0.13端口80(#0)
  • 尝试192.168.0.13 ... * 0x20ab4f0位于发送管头!
  • 连接到192.168.0.13(192.168.0.13)端口80(#0)

      

    GET / gitweb / Project / info / refs HTTP / 1.1   User-Agent:git / 1.7.4.3282.g844cb   主持人:192.168.0.13   接受: /   Pragma:no-cache

  • 请求的网址返回错误:403

  • 关闭连接#0 错误:访问http://192.168.0.13时请求的URL返回错误:403 /叫做gitweb /项目/信息/参

致命:HTTP请求失败

=============================================== =================

所以显然有一些配置错误的权利,尽管我暂时将我的存储库文件夹修改为777。

我估计你也会对apache的配置感兴趣:

=============================================== =================

    ServerAdmin webmaster @ localhost

[...snip...]

PerlLoadModule Apache::Redmine
SetEnv GIT_PROJECT_ROOT /var/cache/git/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

<Location "/git/">
    DAV on
    AuthType Basic
    AuthName "Git Repository"
    Require valid-user

    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    RedmineDSN "DBI:mysql:database=redmine;host=localhost"
    RedmineDbUser "redmine" 
    RedmineDbPass "XXXXXXX" 
    RedmineGitSmartHttp yes
</Location>

Alias /gitweb/ "/var/cache/git/public/"
<Location "/gitweb/">
    Order deny,allow
    Deny from all
    <Limit GET PROPFIND OPTIONS REPORT>
       Options Indexes FollowSymLinks MultiViews
       Allow from 127.0.0.1
       Allow from localhost
    </Limit>
</Location>

=============================================== =================

所以,如果有人愿意给我一个关于做什么的暗示,我真的很感激。提前谢谢!

2 个答案:

答案 0 :(得分:2)

好的,问题解决了:)这是关于这封信的教程:

http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Redmine_for_advanced_git_integration

就我而言,最终条目如下:

PerlLoadModule Apache::Redmine

Alias /git/ "/var/cache/git/public/"
<Directory "/git/">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Location "/git/">
    DAV on
    AuthType Basic
    AuthName "My Git Repository"
    Require valid-user

    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    RedmineDSN "DBI:mysql:database=redmine;host=localhost"
    RedmineDbUser "redmine" 
    RedmineDbPass "XXXXXXX" 
    RedmineGitSmartHttp yes
</Location>

答案 1 :(得分:0)

您似乎没有使用任何身份验证。默认情况下,git只允许在使用身份验证时通过smart-http进行推送。

您应该可以为您正在使用的网址添加用户名,它会提示您输入密码,或者您可以在_netrc文件中设置用户名和密码。