svn 強制使用者新增注釋 和 允許使用者修改注釋

2021-09-08 12:15:32 字數 1805 閱讀 9780

當我們用tortoisesvn提交**時,有很多人不喜歡寫注釋,導致以後**版本多,也不清楚哪個版本到底改了什麼東西。所以在提交的時候,我會強制要求新增注釋。這是如何實現的?這個話題就涉及到了svn的hooks功能的使用。

所謂hooks,可以類似理解linux核心netfilter框架的hook點和hook函式的概念。當使用者在維護**的過程中,其執行的相關動作正好觸發了相關hook點,就會去執行對應hook點的指令碼。

那麼如何設定hook指令碼以保證強制使用者新增注釋,以及允許使用者修改注釋呢?

1. svn強制新增注釋資訊

使用者提交**的動作,對應的是pre-commit。因此,進入hook目錄把pre-commit.tmpl檔名修改為pre-commit, windows下可以修改為pre-commit.bat,這樣可以讓系統知道該檔案是可執行檔案。

開啟pre-commit檔案,注釋或刪除所有的**,然後新增如下**:

123

4567

891011

#!/bin/sh

repos="$1"

txn="$2"

svnlook=/usr/local/bin/svnlook# 修改為伺服器安裝的subversion目錄 whereis svnlook

logmsg=$($svnlook log -t 「$txn」 「$repos」 |grep"[a-za-z0-9]" |wc-m)if["$logmsg" -lt 10]; then #要求注釋不能少於10個字元(數字和字母),您可自定義

echo-e "\nempty log message not allowed. commit aborted!" 1>&2exit1 fiexit0

儲存,退出。

給pre-commit新增可執行許可權:

chmod +x pre-commit

2. 允許使用者修改注釋資訊

使用者修改注釋資訊的動作,對應的是pre-revpos-change。將hooks目錄下的pre-revpos-change.tmpl改名為pre-revpos-change。通常該檔案包含的功能就是允許使用者修改注釋資訊。預設檔案內容如下,如果不是下面這些內容的話,可以對照修改即可:

123

4567

891011

1213

14

#!/bin/sh

repos="$1"

rev="$2"

user="$3" propname="$4" action="$5"   if["$action" = "m" -a "$propname" = "svn:log"]; thenexit0; fiecho"changing revision properties other than svn:log is prohibited" >&2exit1

儲存,退出。

將該檔案加上可執行許可權即可:

chmod +x pre-revpos-change

這樣,就可以允許使用者修改注釋資訊了。

svn 強制使用者新增注釋 和 允許使用者修改注釋

當我們用tortoisesvn提交 時,有很多人不喜歡寫注釋,導致以後 版本多,也不清楚哪個版本到底改了什麼東西。所以在提交的時候,我會強制要求新增注釋。這是如何實現的?這個話題就涉及到了svn的hooks功能的使用。所謂hooks,可以類似理解linux核心netfilter框架的hook點和ho...

svn提交時強制新增注釋

人在很多時候,靠自覺或者說是靠道德,是不行的。必須制定規則,讓其強制遵守。程式設計師也是人,也需要規則。svn提交時,如果沒有注釋,在查閱歷史時,會非常不方便。因此我們需要有乙個讓程式設計師提交 時,強制新增注釋的規則。下面看看在svn中怎麼實現。2.在編輯框中輸入如下指令碼 echo off se...

svn提交時強制新增注釋

人在很多時候,靠自覺或者說是靠道德,是不行的。必須制定規則,讓其強制遵守。程式設計師也是人,也需要規則。svn提交時,如果沒有注釋,在查閱歷史時,會非常不方便。因此我們需要有乙個讓程式設計師提交 時,強制新增注釋的規則。下面看看在svn中怎麼實現。rem 代表5個字元 svnlook log rep...