0

Sharpsvn の Merge メソッドを使用して 2 つのリビジョンをマージすると、競合イベントが発生しません。SvnMergeArgs と SvnUpdateArgs で競合イベントを使用してみました。merge メソッドを呼び出してから、sharpsvn の update メソッドを呼び出しました。マージは作業コピーを古いリビジョンで上書きするだけで、更新はイベントを発生させません。

ここで、競合が発生していないことを見逃しています。以下は私のコードです。

     private static void MergingBranchedScript()
    {
        using (SvnClient client = new SvnClient())
        {

            client.Merge(@"path\abc.sql",
                new Uri("file:///path/Trunk/Script/abc.sql"),
                new SvnRevisionRange(4,7), new SvnMergeArgs());

            SvnUpdateArgs args = new SvnUpdateArgs();
            SvnUpdateResult result;
            client.Update(@"path\Script", args, out result);
            args.Conflict += new EventHandler<SvnConflictEventArgs>(args_Conflict);
        }
    }

    public static void args_Conflict(object sender, SvnConflictEventArgs e)
    {
        //implementation
    }
4

1 に答える 1

4

現在のコードは、操作がすでに完了している場合にのみイベントをフックします。すべてのコマンドで競合イベントをフックする場合は、

client.Conflict += new EventHandler<SvnConflictEventArgs>(args_Conflict);

マージを呼び出す前。

ただし、client.Merge()に渡すSvnMergeArgsにイベントをフックすることもできます。

于 2010-12-10T21:04:01.150 に答える