特定のファイルの Subversion ログまたは履歴にコメントを追加したいのですが、そのファイルに関連する変更はありません。
実際にファイルを変更せずに、svn ログにコメントを追加または挿入する方法はありますか。
コードレビューなど、何らかのイベントが発生した後にログ内のファイルにタグを付ける方法を探しています。
まったく新しいブランチを作成するために svn コピーを実行したくありません。ある時点で単一のファイルに関連付けられたコメントが必要です。
ここに何か提案はありますか?
特定のファイルの Subversion ログまたは履歴にコメントを追加したいのですが、そのファイルに関連する変更はありません。
実際にファイルを変更せずに、svn ログにコメントを追加または挿入する方法はありますか。
コードレビューなど、何らかのイベントが発生した後にログ内のファイルにタグを付ける方法を探しています。
まったく新しいブランチを作成するために svn コピーを実行したくありません。ある時点で単一のファイルに関連付けられたコメントが必要です。
ここに何か提案はありますか?
Subversion には、次の 2 種類のプロパティがあります。
それに加えて、各リビジョンに関連付けられた、かなり重要な 3 つの特別なリビジョン プロパティがあります。
svn:log
: これはコミットメッセージですsvn:date
: これは、コミットが行われた日時です。svn:author
: これは、コミットを行ったユーザーです。それで、問題はあなたが何をしようとしているのかです。ファイルにコメントを追加する場合は、そのファイルにファイル プロパティを追加できます。ただし、これはファイルの変更と見なされるため、チェックアウトを実行してから、svn pset
そのファイルに新しいリビジョンを作成するコミットを行う必要があります。
リポジトリ内の特定のリビジョンに新しいコメントを追加する場合、新しいリビジョンを作成する必要はありません。ただし、pre-revprop-commit
これらの変更を行うためのフック ファイルを作成する必要があります。これには 2 つの方法があります。
svn:log
コメントで修正これがおそらく最も簡単な方法です。ただし、コミット メッセージの変更はログに記録されないため、その過程で元のコミット メッセージが失われます。svn:log
利点は、このコメントがコマンドで自動的に表示されることです。例えば:
$ old_comment=$(svn pget -r 100 -revprop svn:log http://myhost/svn/repos)
$ new_comment="$old_comment
> ================ COMMENT ON REVISION ================
> This was a change needed for a particular customer"
$ svn pset -r 100 --revprop svn:log "$new_comment"
corp:comment
(私はcorp
自分の会社に関連する特別なプロパティを表すために使用します)。これらのコメントはsvn log
メッセージに表示できますが、xml 形式でのみ表示できます。例えば:
$ svn pset --revprop -r 100 foo:comment "This was a change needed for a particular customer" http://host/svn/repos
これで、ログを作成すると、次のコメントが表示されます。
$ svn log --with-revprop foo:comment --xml -r 100 http://host/svn/repos
<?xml version="1.0"?>
<log>
<logentry
revision="100">
<revprops>
<property
name="foo:comment">This was a change needed for a particular customer</property>
</revprops>
</logentry>
</log>
コミットする必要があるファイルのユーザー定義プロパティを設定/変更できます。つまり、副作用を引き起こすことなく一部のメタデータのみを変更できます。
svn propset my:log reason filename
svn commit filename