6

たくさんのコミットをよく目にしますが、チケットを参照するメモはありません...そして、戻って手動で差分を確認することになります。悪くはありませんが、メモがあると便利です。何か案は?

4

8 に答える 8

6

TortoiseSVN ではなく、Subversion 自体 - サーバー上の設定です。コミット コメントを強制する pre-commit フックを設定できます。さらに一歩進んで、Jira などの問題追跡システムへの参照の存在を確認する pre-commit フックもあります。

于 2009-12-18T19:49:30.327 に答える
3

サーバー設定である pre-commit フックを使用する必要があります。基本的にバッチ ファイルである 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
于 2009-12-18T19:56:35.930 に答える
1

コミット コメントを簡単に強制することはできますが、最終的には、「デバッグ」または「テスト」と書かれた 100 万件のコミットが発生します。

開発者がコミット メッセージを追加することの価値を認識していない場合、何かを入力するように強制しても、それは変わりません。

さらに悪いことに、Eclipse ユーザーが最後のコミット メッセージを記憶するように SVN/CVS を統合すると、最後のタスク/プロジェクトからのメッセージとはまったく関係のないファイルをコミットしてしまいます。

于 2009-12-18T19:59:33.427 に答える
1

事前コミット フックスクリプト (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 )
于 2009-05-05T08:19:20.923 に答える
0

TortoiseSVN はクライアントです。Subversion サーバーにコメントを強制したい場合があります。または、コミットにコメントするように指示することもできます。

于 2009-12-18T19:52:06.297 に答える