web-dev-qa-db-ja.com

戻ってSVNチェックインのコメントを編集できますか?

SVNのコメントに間違いを入れました。チェックイン後にこれを編集できますか?

58
leora

コミットメッセージは "バージョン管理されていないプロパティ" で、たとえば svn propset コマンドで変更できます。

$ svn propset --revprop -r 25 svn:log "Journaled about trip to New York."
property 'svn:log' set on repository revision '25'

これは、リビジョン25で「svn:log」というリビジョンプロパティを設定しています

リビジョンプロパティの変更を許可するSubversionの構成

これらはバージョン管理されていないため、Subversionのデフォルトのインストールでは、 pre-revprop-change フックスクリプトを指定しない限り、これらのプロパティを変更できません。

私のシステムの/ var/lib/svn/hooks/pre-revprop-changeからの典型的なスクリプトは次のとおりです。

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then 
  echo "$1 $2 $3 $4 $5" >> /var/lib/svn/logchanges.log
  exit 0; 
fi

echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

これはsvn:logリビジョンプロパティへの変更を記録し、exit 0を使用して編集を許可します。その他のリビジョンプロパティの変更はexit 1を使用して拒否されます。

65
Paul Dixon

リビジョンプロパティの変更を有効にするには、pre-revprop-changeフックスクリプトを作成する必要があります。ここでそれについて読むことができます: http://svnbook.red-bean.com/en/1.0/ch05s02.html (フックスクリプトセクションを探してください)。

Windowsの場合、ログメッセージへの変更のみを許可する(他のプロパティは許可しない)バッチファイルの例へのリンクは次のとおりです。 http://ayria.livejournal.com/33438.html 。基本的に、以下のコードをテキストファイルにコピーし、pre-revprop-change.batという名前を付けて、リポジトリの/ hooksサブディレクトリに保存します。

@ECHO OFF
:: Set all parameters. Even though most are not used, in case you want to add
:: changes that allow, for example, editing of the author or addition of log messages.
set repository=%1
set revision=%2
set userName=%3
set propertyName=%4
set action=%5

:: Only allow the log message to be changed, but not author, etc.
if /I not "%propertyName%" == "svn:log" goto ERROR_PROPNAME

:: Only allow modification of a log message, not addition or deletion.
if /I not "%action%" == "M" goto ERROR_ACTION

:: Make sure that the new svn:log message is not empty.
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
set bIsEmpty=false
)
if "%bIsEmpty%" == "true" goto ERROR_EMPTY

goto :eof

:ERROR_EMPTY
echo Empty svn:log messages are not allowed. >&2
goto ERROR_EXIT

:ERROR_PROPNAME
echo Only changes to svn:log messages are allowed. >&2
goto ERROR_EXIT

:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_EXIT
exit /b 1
55
patmortech

Pre-revprop-changeフックスクリプトを作成せずにログメッセージをすばやく変更する方法は、次のsvnadmincommand を使用することです。

svnadmin setlog --bypass-hooks REPOS_PATH -r N FILE

どこ REPOS_PATHはサーバー上のリポジトリへのパス(/ srv/svn/repositoryなど)、Nはリビジョン番号(25など)、FILEは正しいコミットログエントリを含むテキストファイルです。

2つのこと:これにはリポジトリファイルへのファイルシステムアクセスが必要ですが、pre-revprop-changeフックスクリプトを作成する必要があります... 2番目に、このコマンドは所定の場所にあるフックスクリプトをバイパスするので、使用することをお勧めします...

23
Kit Roed

Tortoise SVNを使用すると、これが非常に簡単になります。ログメッセージウィンドウを表示し、編集するリビジョンログを右クリックして、コンテキストメニューから[ログの編集]を選択します。

9
Dan

Tortoise SVNでは、次の手順を実行できます。
1。リポジトリブラウザに移動します。
2。作業するフォルダーを右クリックします。
3。 [ログを表示]をクリックします。
4。リビジョン一覧で、目的のリビジョンを選択して右クリックします。
5。 [ログメッセージの編集]をクリックします。

これで、svnチェックインリビジョンでコメントを編集できます。

ありがとう!

6
Aung Chan Myae
svn propset svn:log --revprop -r <REVISION> "My corrected log message" <PATH-TO-REPOSITORY> 
4

Subclipseを使用するEclipse(またはRational Application Developer):

[チーム]-> [履歴を表示]を選択し、コメントを変更するリビジョンを右クリックして[コミットプロパティの設定]を選択すると、コメントまたは作成者を変更できます。

4
user244298