Laz*_*zao 0 apache git redmine
我正在尝试使用 Redmine 访问 git 存储库。不幸的是,我无法做到这一点,这是给出的错误:
The entry or revision was not found in the repository.
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
SCM: Git
Main Repository: Checked
Identifier: wide
Path to repository: /var/repos/git/wide
Path encoding: UTF-8
Run Code Online (Sandbox Code Playgroud)
我尝试了几件事。将我的非裸存储库克隆到裸存储库后,我尝试了以下几种路径:
/var/repos/git/wide
/var/repos/git/wide/.git
/var/repos/git/wide.git
/var/repos/git/wide.git/.git
Run Code Online (Sandbox Code Playgroud)
我还尝试将我的 git 存储库的所有者更改为 apache(因为 apache 运行 Redmine)。
任何帮助,将不胜感激。问候。
我写了本教程(在官方 redmine 页面上) HowTo:前段时间轻松将(SSH 安全的)GIT 存储库整合到 redmine 中,其中包含要执行的详细命令和一个非常详细的示例。如果您没有 ssh 保护的 GIT 存储库,请忽略与此相关的声明。
简而言之(如果你知道命令的话)主要是:
.git不仅仅是文件夹(完整路径)希望这对你有帮助
编辑:我自己写的完整教程
本 HowTo 将展示如何将 GIT 存储库集成到您的 redmine 项目以及如何使存储库保持最新。
administration > repositories设置中的 redmine 中进行检查。如果有绿色复选标记,一切都很好。如果不是,您必须先安装 GIT,例如通过apt-get install为了更好地理解这个 HowTo,我将使用以下配置
redmine/var/lib/redmine,我将在repos那里创建一个子目录,在那里我克隆存储库。所以这个目录的完整路径是/var/lib/redmine/repos/git.my-url.com名称my_repo,所以完整的 URL 是git@git.my-url.com:my_repo首先,我们需要将存储库克隆为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
Run Code Online (Sandbox Code Playgroud)
现在所有存储库信息都在磁盘上,但 redmine 对此一无所知。所以在下一步中,我们将改变这一点。
在 redmine 中,我们打开“管理 > 项目 - > 存储库”对话框。您也可以通过“项目 -> 设置 -> 存储库”访问此对话框。在那里我们添加一个新的存储库
输入: GIT Main-repository:如果克隆的存储库是您的主存储库,请选中此项,否则不要选中它。 Name (redmine intern): 建议选择与仓库同名,eg
my_repoPath : 仓库的绝对路径,eg/var/lib/redmine/repos/my_repo
现在 redmine 知道存储库。如果您repository在项目中打开-tab,您将看到存储库树、上次提交等。
注意:当您打开对话框时,redmine 会获取自上次有人打开此对话框以来本地存储库和 redmine 数据库的所有变更集。特别是第一次打开大型存储库的对话框可能需要很长时间。不要取消进度,让 redmine 工作直到它完成。可能的谬误:打开对话框时 redmine不会从 GIT 中获取新的提交!这意味着如果您不更新本地 GIT 存储库,您将永远不会在 redmine 中看到新的提交。为此,我们将在第 3 步中编写一个 cronjob。
为了让 GIT 存储库自动保持最新,我们将添加一个 cronjob。使用--all我们定义的参数来获取所有分支。
我们为用户打开用户指定的 crontabredmine并添加一个 cronjob 以每五分钟获取所有分支。
sudo -e -u redmine
Run Code Online (Sandbox Code Playgroud)
并添加这一行
*/5 * * * * cd /var/lib/redmine/repos/my_repo && git fetch --all
Run Code Online (Sandbox Code Playgroud)
或者,我们可以直接编辑/etc/crontab-file。如果我们这样做,我们必须添加应该执行命令的存储库所有者的用户名。
nano /etc/crontab
Run Code Online (Sandbox Code Playgroud)
并添加这一行
*/5 * * * * redmine cd /var/lib/redmine/repos/my_repo && git fetch --all
Run Code Online (Sandbox Code Playgroud)
注意如果您克隆多个存储库,则必须为每个存储库添加一个 crontab 行。