6

SubVersionに関連するいくつかのタスクを自動化したいと思っていたので、SharpSvnを入手しました。残念ながら、私はそれに関する多くのドキュメントを見つけることができません。

ユーザーが新しいリビジョンをコミットした後に変更を表示できるようにして、特別なコメントのコードを解析し、チケット システムにアップロードできるようにしたいと考えています。

4

3 に答える 3

3

SharpSvn を参照したいだけの場合は、使用できますhttp://docs.sharpsvn.net/ . 主に機能の提供に重点が置かれているため、そこにあるドキュメントは完全ではありません。ドキュメント (または SharpSvn 自体) の強化に関するヘルプは大歓迎です ;-)

課題トラッカーのログ メッセージを使用するには、次の 2 つのルートを使用できます。

  1. 変更を 1 つずつ処理するポストコミット フック
  2. 時々「svn log -r <last-retrieved>:HEAD」を呼び出すスケジュールされたサービス。

SharpSvn の最新の毎日のビルドには、コミット フックのサポートがいくつかありますが、その部分はまだ api-stable ではありません。

次のコマンドを使用して、ポスト コミット フック (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 もフックする必要があります)

于 2008-11-16T13:15:05.693 に答える
2

これは役に立ちますか?

http://blogs.open.collab.net/svn/2008/04/sharpsvn-brings.html

于 2008-11-16T07:08:09.100 に答える
0

(svnサーバーでの)Subversionフックは、ここでは別のアプローチではないのではないかと思います。私は試していませんが、CaptainHookはsvn->。NETフック統合を提供しているようです。

于 2008-11-16T09:20:57.397 に答える