redmine版本库:版本库中不存在该条目和(或)其修订版本

前面做了Aphache与Redmine的整合。

发现原来配置好的git项目版本库报错了:”版本库中不存在该条目和(或)其修订版本”。经了解是因为整合后,Redmine不再使用自己的用户运行程序,而是用Apache的用户运行程序,所以原来设置的文件权限不适用。访问不到版本库自然报这个错。

这里对这个问题的可能原因做个总结:

1. git路径不正确,redmine会寻找/usr/bin/git来执行,如果git可执行命令不在那个目录下面,那么需要做个软链接,或者把git path添加到系统运行路径环境变量中

2. 权限不正确,redmine是以apache用户(具体用户名看apache的配置,比如我的是www)来运行的,通过查看config/enviroment.rb文件属性来确认:

[root@techbrood.com log]# ll ../config/environment.rb
-rw-rw-r– 1 www www 592 Apr 11 12:31 ../config/environment.rb  //apache用户要有environment.rb的写权限。

3. 如果上述1和2的问题都没有,那么很可能是本身的git库不正确。

切换redmine进入development模式,查看development.log日志,可以看到在点击项目版本库标签时,redmine发出的git命令信息:

 

[plain] view plain copy

git –git-dir ‘/opt/git/repos/ufcms.git/’ log –no-color –raw
git –git-dir ‘/opt/git/repos/ufcms.git/’ ls-tree -l ‘HEAD:’
手动在命令行下执行,如果提示:fatal: Not a git repository: ‘/opt/git/repos/ufcms.git/’

可以确认是git库路径不正确,比如你可能是从github上克隆下来的git库,

git clone –bare git://github.com/iefreer/ufcms.git

那么上述命令会在本地生成一个git库,不过路径不是 /opt/git/repos/ufcms.git而是/opt/git/repos/ufcms/.git,

需要在Redmine项目版本库配置中把git路径修改正确。

另外在开发模式下还可以通过查看log/development.scm.stderr.log来获取准确的错误信息。