我經常看到一些提交,但沒有引用票據的票據......所以我最終回去手動檢查差異。不一定是壞的,但有筆記會很高興。有任何想法嗎?我可以如何強迫我們的開發人員在通過TortoiseSVN提交時輸入筆記?
回答
當然,但你將如何執行非亂碼,有意義和背景化的提交消息?
當你注意到一個跛腳/空洞的提交時,更好地衝你的不負責任的同事。或者口頭相當於一拳。只要確保他們感覺不好,這是應得的。
的確,預先提交的腳本不會阻止人們在框中鍵入「更新的項目」,但我已經看到提交消息在執行後從90%的空到90%的合理消息。如果您有預先提交的腳本,您必須少做點事。 – 2009-05-05 07:45:35
爲了達到此目的,Cattleprods訂購。 – 2009-05-05 08:12:00
您可以定義一個預先提交掛鉤腳本,拒絕所有提交空白或太短的日誌消息。
這是關於如何做到的post。
我已經使用了預提交鉤子腳本來確保提交註釋始終引用問題跟蹤系統中的問題編號。例如,評論如
fixes frobulator when the moon is full (bug 1234)
將被接受,因爲它包含一個錯誤號。即使採用這種安排,您仍然必須相信開發人員才能插入有意義的評論和錯誤編號。
1.6現在包含reg-ex的bug編號匹配,如果沒有發現bug數(可以拒絕,但比沒有更好),可以發出警告。 – 2009-05-05 08:13:18
我們的預提交hookscript(Windows批處理):
@echo off & setlocal ENABLEEXTENSIONS
set SVNLOOK="E:\Subversion\Program\Subversion 1.5.0\bin\svnlook.exe"
set REPOS=%1%
set TXN=%2%
set LOGFILE=%REPOS%\hooks\log-%TXN%.txt
set GREP=E:\UnxUtils\usr\local\wbin\grep.exe
%SVNLOOK% log -t "%TXN%" "%REPOS%" >%LOGFILE%
set "first="
for /f "delims=" %%a in ('more ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if not defined first (echo "Please supply a commit comment" >&2 & exit 1)
REM Check for invalid windows characters in the path
echo Checking >%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "\" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find ":" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "*" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "?" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find """" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^>" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^<" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^|" >>%LOGFILE%
set "first="
for /f "delims=" %%a in ('more +1 ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if defined first (echo "Please do not use filename characters which are invalid in windows. - Found %first%" >&2 & exit 1)
REM Tagblock - prevent changes to tag directories
echo Checking >%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | %GREP% "^U.*\/tags\/.*" | %GREP% -v -f "%REPOS%\conf\tag-block-exceptions.txt" >>%LOGFILE%
set "first="
for /f "delims=" %%a in ('more +1 ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if defined first (
echo "%first% -- Error: Modifications to tag directories are blocked. To allow these modifications add the path to %REPOS%\conf\tag-block-exceptions.txt" >&2
exit 1)
不TortoiseSVN的,但Subversion本身 - 在服務器上設置。您可以設置一個強制執行提交評論的預提交掛鉤。如果你想更進一步,還有一些預先提交的鉤子可以驗證是否存在對像Jira這樣的問題跟蹤系統的引用。
TortoiseSVN具有tsvn:logminsize屬性。如果您將該屬性設置爲10,那麼OK按鈕將保持禁用狀態,直到輸入至少10個字符作爲提交消息。 – Stefan 2009-12-22 14:28:13
斯蒂芬的建議+1。我已經使用了pre-commit鉤子了一段時間,但是這會避免開發人員抱怨他們只有在所有更改發送到服務器後纔看到提交失敗消息。 – Michael12345 2013-12-11 02:48:52
TortoiseSVN是客戶端,您可能需要force comments on the subversion server。 或者你可以告訴他們評論他們的提交。
這是我在創建腳本時最初加入書籤的鏈接,我唯一遇到的問題是它需要調用函數的直接路徑。 – Nate 2009-12-18 19:59:19
您需要使用一個預先提交的鉤子,這是一個服務器設置,我已經爲VisualSVN編寫了一個基本上是批處理文件的鉤子 - 類似的腳本可用於基於非Windows的SVN服務器。
@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
call "C:\program files\visualsvn server\bin\svnlook" log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo Your commit has been blocked because you didn't give any log message 1>&2
echo Please write a log message describing the purpose of your changes and 1>&2
echo then try committing again. -- Thank you 1>&2
exit 1
可以強制提交評論很輕鬆了,但你最終得到的是一百萬提交該說「調試」或「測試」。
如果您的開發人員看不到添加提交消息時強制他們鍵入的值不會改變這一點。
更糟糕的是,當Eclipse用戶將SVN/CVS集成到一起時,它會記住它們的最後一次提交消息 - 並且它們最終提交了一個完全不相關的文件,其中包含來自上一個任務/項目的消息。
- 1. 當我與開發人員合併時,如何壓縮提交?
- 2. 我們可以開發,在
- 3. 爲什麼TortoiseSVN強迫我用OK按鈕關閉每個提交對話框?
- 4. 我如何讓人們在Rails 5中公開表單提交?
- 5. 我可以強迫孩子屬性嗎?
- 6. Tomcat - 我可以強迫非HTTPS?
- 7. 我們可以通過js
- 8. 如何在人員在輸入字段中輸入空格時強制使用JavaScript提交表單?
- 9. PHP開發人員的可可提示?
- 10. 我可以將開發人員的任務標記爲不可運行嗎?
- 11. 我們可以輪詢服務人員的通知嗎
- 12. 人們可以在Github上看到我提交的小時和分鐘嗎?
- 13. 我可以通過私人github回購公開發布嗎?
- 14. 如何強迫閒散人員同時兼任R?
- 15. 我可以停止MAMP,迫使我在登錄時輸入密碼嗎?
- 16. 我可以通過暱稱提交我的iOS應用嗎?
- 17. 我們是否可以強制單擊提交按鈕(MVC3)後回發
- 18. 可以通過Tortoisesvn(TortoiseProc.exe)提交文件,但不能提交svn(svn.exe)
- 19. Chrome開發人員工具可以通過ID複製元素
- 20. 可以輸入類型:通過任何方式提交圖形?
- 21. 我們可以通過在ROR
- 22. 我可以通過我的筆記本電腦發出HTTP Post請求,不會通過將Raspberry Pi連接到我的筆記本電腦
- 23. 我們如何通過提交來改變桌面的背景?
- 24. 我可以在多臺Mac上使用我的開發人員證書嗎?
- 25. 我在哪裏可以獲得最新的DirectShow開發人員運行時?
- 26. 我在哪裏可以獲得Silverlight 4的「Silverlight開發人員運行時」?
- 27. 強迫人們在Chrome或IE中打開網頁
- 28. 如何在提交時強制發回
- 29. iPhone開發人員計劃:我可以使用新的開發人員許可證向企業應用程序提交企業應用程序嗎?
- 30. 我可以生成專用提交補丁併發送給維護人員嗎?
即使需要筆記,您仍可能遇到問題。許多人最終放入「更新」或類似的東西。如果你還沒有,那麼向所有開發人員解釋這些評論如何能夠長期發揮作用是值得的。例如從現在起能夠看到一年的變化動機。 – Shaun 2009-12-18 20:16:09
另請參見[爲Tortoise SVN創建必需的註釋鉤子](http://stackoverflow.com/questions/1208900/creating-a-必需的註釋 - 掛鉤 - for -tortoise-svn)。 – 2015-06-01 14:02:11