2012-03-02 22 views
1

我想在SVN(即Windows的.bat文件)中創建一個檢查空日誌消息的預提交掛鉤。此外,我想只針對SVN中的特定文件夾進行此項檢查。如何在SVN中的特定文件夾中使用pre-commit hook(Windows批處理文件)?

任何人都可以幫忙嗎?

問候, Ruhee Jaiswal

+0

的[Windows預提交鉤評論長度顛覆]可能重複(http://stackoverflow.com/questions/869248/windows-pre-commit-hook -for-comment-length-subversion) – 2012-03-02 11:03:12

+0

@NikolaSmiljanić:不要認爲這是重複的,因爲OP只想爲特定文件夾執行掛鉤(即檢查空註釋)。 – eckes 2012-03-02 11:18:48

回答

0

如果您對TortoiseSVN不滿意,您可以在那裏輸入client-side hook

TortoiseSVN的將下列參數傳遞到預commit鉤子:

路徑深度MESSAGEFILE CWD

其中有趣的是PATH

PATH
路徑到一個包含所有操作開始的路徑的臨時文件。每個路徑位於臨時文件的單獨一行中。

所以,當你的鉤子是所謂的(可能是任何語言BTW),請執行下列操作步驟:中MESSAGEFILE

  1. 檢查的內容。如果裏面有評論,一切都很好,從腳本返回成功(我不記得成功是否表示0或!0,只是試一試)
  2. 如果MESSAGEFILE爲空,瀏覽文件PATH並查看是否有影響的元素。如果是這樣,返回一個錯誤;否則返回成功。
1

我會建議使用SVN屬性這個,如果你使用的是Windows和使用TortoiseSVN。

tsvn:logminsize設置提交日誌消息的最小長度。 如果輸入比此處指定的更短的消息,則提交爲 已禁用。此功能對於提醒您爲每次提交提供適當的描述性消息都非常有用。如果此屬性不是 集,或者值爲零,則允許空日誌消息。

此外請務必查看other features,如錯誤跟蹤器集成。

如果你真的很喜歡用一個鉤子,你可以嘗試this這樣做在服務器端,在這種情況下,你的問題是重複的:)

0
  1. 你不能有鉤,其中工程事件只對某些子樹
  2. 掛鉤用於倉庫範圍的事件處理程序
  3. 如果你想查詢只對受影響回購的一些地方,你必須添加裏面鉤碼邏輯
0

除了這個答案Windows Pre-commit hook for comment length Subversion你可以使用svnlook dir-changed來檢查當前提交的特定目錄。

所以,你可以添加類似

svnlook dir-changed %REPOS% -t %TXN% | findstr your_path > nul 
if %errorlevel% equ 0 exit 0 

svnlook log %REPOS% -t %TXN% | findstr . > nul 
if %errorlevel% gtr 0 (goto err) else exit 0 
相關問題