專案

一般

個人檔案

插件目錄 » 外掛檢視修訂

作者 Vitaly Klimov
網站 https://redmine.dev.org.tw/boards/3/topics/31183
程式碼儲存庫 -
註冊於 2012-06-06 (大約 12 年前)
目前版本 0.0.1
相容於 Redmine 1.3.x, 1.4.x, 2.0.x, 2.1.x
使用者評分   (0)

Redmine 外掛檢視修訂插件

此插件嘗試解決 Redmine 無法猴子補丁檢視所造成的問題。

因此,插件的作者無法在其插件發行包中維護不同的 .erb 檔案集。

因此,作者必須為每個不同的 .erb 檔案版本建立不同的發行集,或者只支援最新版本。

使用此插件提供的 Rake 工作、特殊的資料夾結構和檢視名稱,作者可以保留一個支援不同 Redmine 版本的發行包。

Rake 工作

名為 **redmine:plugins:process_version_change** 的 Rake 工作具有以下屬性

plugins 要處理的插件資料夾列表,可以省略。在這種情況下,將處理所有插件
log 日誌檔案的名稱。如果不存在,則使用 *stdout*

運作方式

要讓此工作處理插件,插件的根資料夾中應該有名為 **rev** 的資料夾。此資料夾中的資料夾反映了插件資料夾樹的資料夾結構。

資料夾中的每個檔案都具有以下模式

修訂(=|!)-版本_高.版本_低.版本_微(=|!)-原始_檔案名稱

  • 修訂
    應使用此檔案的最低修訂號。如果存在版本,則可以省略。
  • 版本_高.版本_低.版本_微
    應使用此檔案的最低版本號,格式為主要.次要.微小。如果存在修訂,則可以省略。
  • (=|!)
    選用。以下符號之一
    = - 表示此檔案應僅用於此**確切**版本/修訂
    ! - 表示如果 Redmine 版本/修訂高於此版本,則應從插件資料夾中移除此檔案

範例

假設我們有一個插件,它修改了 **app/views/issues/new.html.erb** 和 **app/views/messages/_form.html.erb** 檔案

Redmine 從修訂版 **7723** 開始,第一個檔案就有不同的版本,此檔案在版本 **1.4.1** 中也有變更。第二個檔案在版本 **1.4.1** 中已變更。此外,對於版本 **1.3.1**,還存在此檔案的另一個特殊版本。從版本 **2.0.0** 開始,將不再使用此檔案(例如,已重新命名)。

在這種情況下,我們應該在插件根資料夾中建立以下資料夾和檔案結構

rev/
   app/
      views/
         issues/
            0000-new.html.erb
            7723-new.html.erb
            1.4.1-new.html.erb
         messages/
            1.3.0-_form.html.erb
            1.3.1=-_form.html.erb
            1.4.1-_form.html.erb
            1.9.9!-_form.html.erb

現在讓我們考慮以下情況

  1. Redmine 版本 1.3.2,修訂版為 7800
    選取的檔案:**7723-new.html.erb** 和 **1.4.1-_form.html.erb**
  2. Redmine 版本 1.3.1,修訂版本未知,但低於 7723
    已選檔案:0000-new.html.erb1.3.1!-_form.html.erb
  3. Redmine 版本 2.0.0,修訂版本未知
    已選檔案 1.4.1-new.html.erb,檔案 form.html.erb 已從 _app/views/messages 資料夾中移除

如需「實際」範例,請查看我的 看板觀察者插件

檔案選擇規則

檔案有效性檢查

  1. 檔名僅包含修訂版本
    如果 Redmine 的修訂版本未知,則從 redmine_revisions.yml 檔案中取得修訂版本。如果 Redmine 修訂版本更高或相等,則檔案有效。如果存在等號,則當修訂版本與 Redmine 修訂版本相符時,檔案才有效
  2. 檔名僅包含版本
    如果 Redmine 版本更高或相等,則檔案有效。如果存在等號,則當版本與 Redmine 版本相符時,檔案才有效
  3. 檔名同時包含版本和修訂版本
    1. 如果 Redmine 的修訂版本已知,則套用修訂版本的規則
    2. 如果 Redmine 的修訂版本未知,則套用版本的規則

選擇規則

如果存在帶有等號的檔案,則選擇該檔案,否則選擇修訂版本/版本最高的檔案。

特殊檔案

插件會在 Rails 根資料夾中檢查兩個特殊檔案

  1. .version
    如果存在,則用於覆寫當前版本。應包含格式為 XX.YY.ZZ(主要版本、次要版本、微小版本)的字串。
  2. .revision
    如果存在,則用於確定 Redmine 的當前修訂版本。應包含被視為修訂版本號的數值或單詞 .ignore - 在這種情況下,修訂版本將從流程中排除。
  3. <plugin_root>/config/redmine_revisions.yml
    此檔案包含 Redmine 修訂版本和版本之間的映射。

更新日誌

0.0.1 (2012-06-06)

與 Redmine 1.3.x、1.4.x、2.0.x、2.1.x 相容。