插件目錄 » 外掛檢視修訂
|
作者 | 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 | |
使用者評分 |
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
現在讓我們考慮以下情況
- Redmine 版本 1.3.2,修訂版為 7800
選取的檔案:**7723-new.html.erb** 和 **1.4.1-_form.html.erb** - Redmine 版本 1.3.1,修訂版本未知,但低於 7723
已選檔案:0000-new.html.erb 和 1.3.1!-_form.html.erb - Redmine 版本 2.0.0,修訂版本未知
已選檔案 1.4.1-new.html.erb,檔案 form.html.erb 已從 _app/views/messages 資料夾中移除
如需「實際」範例,請查看我的 看板觀察者插件
檔案選擇規則¶
檔案有效性檢查
- 檔名僅包含修訂版本
如果 Redmine 的修訂版本未知,則從 redmine_revisions.yml 檔案中取得修訂版本。如果 Redmine 修訂版本更高或相等,則檔案有效。如果存在等號,則僅當修訂版本與 Redmine 修訂版本相符時,檔案才有效 - 檔名僅包含版本
如果 Redmine 版本更高或相等,則檔案有效。如果存在等號,則僅當版本與 Redmine 版本相符時,檔案才有效 - 檔名同時包含版本和修訂版本
- 如果 Redmine 的修訂版本已知,則套用修訂版本的規則
- 如果 Redmine 的修訂版本未知,則套用版本的規則
選擇規則
如果存在帶有等號的檔案,則選擇該檔案,否則選擇修訂版本/版本最高的檔案。
特殊檔案¶
插件會在 Rails 根資料夾中檢查兩個特殊檔案
- .version
如果存在,則用於覆寫當前版本。應包含格式為 XX.YY.ZZ(主要版本、次要版本、微小版本)的字串。 - .revision
如果存在,則用於確定 Redmine 的當前修訂版本。應包含被視為修訂版本號的數值或單詞 .ignore - 在這種情況下,修訂版本將從流程中排除。 - <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 相容。