Redmine:在存储库中找不到条目或修订版

时间:2015-07-01 13:04:44

标签: git apache redmine

我正在尝试使用Redmine访问git存储库。 不幸的是,我无法做到这一点,这是错误:

The entry or revision was not found in the repository.

这是我的配置:

SCM: Git
Main Repository: Checked
Identifier: wide
Path to repository: /var/repos/git/wide
Path encoding: UTF-8

我尝试了几件事。将我的非裸存储库克隆到裸存储库后,我尝试了以下几种方法:

/var/repos/git/wide
/var/repos/git/wide/.git
/var/repos/git/wide.git
/var/repos/git/wide.git/.git

我还尝试将我的git存储库的所有者更改为apache(因为apache运行Redmine)。

任何帮助将不胜感激。 问候。

1 个答案:

答案 0 :(得分:3)

我写了这个教程(在官方redmine页面上) HowTo: easily integerate a (SSH secured) GIT repository into redmine前段时间有详细的执行命令和一个非常详细的例子。如果您没有ssh安全的GIT存储库,请忽略有关此问题的声明。

简而言之(如果你清楚地知道命令)主要的事情是:

  • redmine用户可以读/写的存储库的文件夹
  • 将存储库克隆为 MIRROR (不是 BARE )!
  • 在redmine项目设置中设置存储库,而不使用.git文件夹(完整路径)
  • 添加cronjob以自动获取存储库并更新redmine中的数据

希望这有助于你

编辑:我自己编写的完整教程

HowTo:轻松将(SSH安全的)GIT存储库集成到redmine

范围

本方法将展示如何将GIT存储库集成到redmine项目以及如何使存储库保持最新。

先决条件

  • 您的redmine-directory的所有者需要SSH-Key和(读取)访问您要以redmine集成的存储库。
  • 需要克隆GIT存储库的目录。
  • Redmine必须找到GIT二进制文件,这意味着必须安装GIT。您可以在administration > repositories设置中以redmine格式进行检查。如果有绿色选中标记,一切都很好。如果不是,您必须先安装GIT,例如通过apt-get install
配置示例

为了更好地理解这个,我将使用以下配置

  • 我的redmine的所有者名为redmine
  • 我的redmine主目录是/var/lib/redmine,我将在那里创建一个子目录repos,我在那里克隆存储库。因此,此目录的完整路径为/var/lib/redmine/repos/
  • 我的仓库的网址为git.my-url.com,名称为my_repo,因此完整网址为git@git.my-url.com:my_repo

第1步:克隆存储库

首先,我们需要将存储库克隆为 MIRROR (不是 BARE !)存储库。镜像存储库没有工作文件,只有提交信息,我们需要redmine。

我们切换到redmine-user并将存储库克隆到选择的目录中。

sudo -su redmine
cd /var/lib/redmine/repos/
git clone --mirror git@git.my-url.com:my_repo my_repo

现在所有存储库信息都在磁盘上,但是redmine对此一无所知。所以在下一步我们将改变这一点。

步骤2:引入存储库以重新编译

在redmine内部,我们打开"管理>项目 - >库"对话。您也可以通过" project - >访问此对话框。设置 - >库&#34 ;.我们在那里添加了一个新的存储库

  

输入:GIT   主存储库:如果克隆的存储库是您的主存储库,请检查此项,如果不是未选中它。   名称(redmine intern):我建议选择与存储库相同的名称,例如my_repo   路径:存储库的绝对路径,例如/var/lib/redmine/repos/my_repo

现在redmine知道存储库。如果打开项目中的repository - 选项卡,您将看到存储库树,最后提交等等。

注意:当您打开对话框时,redmine会从上次有人打开此对话框时获取所有变更集本地存储库和redmine数据库。特别是第一次打开大型存储库的对话框可能需要很长时间。不要取消进度,只需让redmine工作直到完成。 可能的谬误:打开对话框时,redmine DOESN' T 从GIT中获取新的提交!这意味着如果您不更新本地GIT存储库,您将永远不会在redmine中看到新的提交。为此,我们将在第3步中编写一个cronjob。

步骤3:添加cronjob以获取GIT-repository

为了使GIT存储库自动保​​持最新,我们将添加一个cronjob。使用我们定义的--all参数来获取所有分支。

我们为用户redmine打开用户指定的crontab,并添加一个cronjob以每五分钟获取一次所有分支。

sudo -e -u redmine

并添加此行

*/5 * * * * cd /var/lib/redmine/repos/my_repo && git fetch --all

或者我们可以直接编辑/etc/crontab - 文件。如果我们这样做,我们必须添加应该执行命令的存储库所有者的用户名。

nano /etc/crontab

并添加此行

*/5 * * * * redmine cd /var/lib/redmine/repos/my_repo && git fetch --all

注意如果克隆多个存储库,则必须为每个存储库添加crontab行。