簡體   English   中英

Redmine:在存儲庫中找不到條目或修訂版

[英]Redmine: The entry or revision was not found in the repository

我正在嘗試使用 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)。

任何幫助,將不勝感激。 問候。

我寫了這個教程(在官方 redmine 頁面上) HowTo:前段時間輕松地將(SSH 安全的)GIT 存儲庫整合到 redmine 中,其中包含要執行的詳細命令和一個非常詳細的示例。 如果您沒有 ssh 保護的 GIT 存儲庫,請忽略與此相關的聲明。

簡而言之(如果你知道命令的話)主要是:

  • redmine 用戶可以讀/寫的存儲庫文件夾
  • 將存儲庫克隆MIRROR (不是BARE )!
  • 在 redmine 項目設置中設置您的存儲庫,而沒有.git只是文件夾(完整路徑)
  • 添加 cronjob 以自動獲取存儲庫並更新 redmine 中的數據

希望這對你有幫助

編輯:我自己寫的完整教程


操作方法:輕松將(受 SSH 保護的)GIT 存儲庫集成到 redmine 中

范圍

本 HowTo 將展示如何將 GIT 存儲庫集成到您的 redmine 項目以及如何使存儲庫保持最新。

先決條件

  • 您的 redmine 目錄的所有者需要 SSH 密鑰和(讀取)您要集成到 redmine 的存儲庫的訪問權限。
  • 需要一個目錄來克隆 GIT 存儲庫。
  • Redmine 必須找到 GIT 二進制文件,這意味着必須安裝 GIT。 您可以在administration > repositories設置中的 redmine 中進行檢查。 如果有綠色復選標記,一切都很好。 如果不是,您必須先安裝 GIT,例如通過apt-get install
示例配置

為了更好地理解這個 HowTo,我將使用以下配置

  • 我的 redmine 所有者叫做redmine
  • 我的 redmine 主目錄是/var/lib/redmine ,我將在那里創建一個子目錄repos ,在那里我克隆存儲庫。 所以這個目錄的完整路徑是/var/lib/redmine/repos/
  • 我的 repo 的 URL 是git.my-url.com ,名稱my_repo ,所以完整的 URL 是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 對此一無所知。 所以在下一步中,我們將改變這一點。

第二步:將repository引入redmine

在 redmine 中,我們打開“管理 > 項目 - > 存儲庫”對話框。 您也可以通過“項目 -> 設置 -> 存儲庫”訪問此對話框。 在那里我們添加一個新的存儲庫

輸入: GIT Main-repository :如果克隆的存儲庫是您的主存儲庫,請選中此項,否則不要選中它。 Name (redmine intern): 建議選擇與倉庫同名,例如my_repo Path : 倉庫的絕對路徑,例如/var/lib/redmine/repos/my_repo

現在 redmine 知道存儲庫。 如果您在項目中打開repository -tab,您將看到存儲庫樹、上次提交等。

注意:當您打開對話框時,redmine 會獲取自上次有人打開此對話框以來本地存儲庫和 redmine 數據庫的所有變更集。 特別是第一次打開大型存儲庫的對話框可能需要很長時間。 不要取消進度,讓 redmine 工作直到它完成。 可能的謬誤:打開對話框時 redmine不會從 GIT 中獲取新的提交! 這意味着如果您不更新本地 GIT 存儲庫,您將永遠不會在 redmine 中看到新的提交。 為此,我們將在第 3 步中編寫一個 cronjob。

第 3 步:添加一個 cronjob 來獲取 GIT 存儲庫

為了讓 GIT 存儲庫自動保​​持最新,我們將添加一個 cronjob。 使用--all參數,我們定義獲取所有分支。

我們為用戶redmine打開用戶指定的 crontab 並添加一個 cronjob 以每五分鍾獲取所有分支。

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

並添加這一行

nano /etc/crontab

或者,我們可以直接編輯/etc/crontab文件。 如果我們這樣做,我們必須添加應該執行命令的存儲庫所有者的用戶名。

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

並添加這一行

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

注意如果您克隆多個存儲庫,則必須為每個存儲庫添加一個 crontab 行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM