リビジョンがコミットされた後に行われた変更を表示してコメントを解析するにはどうすればよいですか?
質問
SubVersionに関連するいくつかのタスクを自動化することを望んでいたので、SharpSvnを入手しました。残念ながら、私はそれのための多くのドキュメントを見つけることができません。
ユーザーが新しいリビジョンをコミットした後、変更を表示できるようにしたいので、チケットシステムにアップロードできる特別なコメントのコードを解析できます。
解決
SharpSvnを参照する場合は、 http://docs.sharpsvn.net/ 。主に機能の提供に焦点が当てられているため、そこのドキュメントは完全にはほど遠い。ドキュメント(またはSharpSvn自体)の拡張に関するヘルプは歓迎です;-)
問題トラッカーのログメッセージを使用するには、2つのルートを使用できます:
- 変更を1つずつ処理するコミット後のフック
- 「svn log -r <!> lt; last-retrieved <!> gt;:HEAD」を時々呼び出す定期サービス。
SharpSvnの最後の毎日のビルドは、コミットフックをサポートしていますが、その部分はまだAPI安定ではありません。
次を使用して、コミット後フック(post-commit.exe)を作成できます。
static void Main(string[] args)
{
SvnHookArguments ha;
if (!SvnHookArguments.ParseHookArguments(args, SvnHookType.PostCommit, false, out ha))
{
Console.Error.WriteLine("Invalid arguments");
Environment.Exit(1);
}
using (SvnLookClient cl = new SvnLookClient())
{
SvnChangeInfoEventArgs ci;
cl.GetChangeInfo(ha.LookOrigin, out ci);
// ci contains information on the commit e.g.
Console.WriteLine(ci.LogMessage); // Has log message
foreach(SvnChangeItem i in ci.ChangedPaths)
{
//
}
}
}
(完全なソリューションを実現するには、ユーザーが最初のコミット後にログメッセージを変更する可能性があるため、post-revprop-changeもフックする必要があります)
他のヒント
Subversionフック(svnサーバーで)はここで別のアプローチではないのだろうか?試していませんが、 CaptainHook はsvnを提供しているようです-<!> gt; .NETフック統合。
所属していません StackOverflow