合并不触发冲突事件

发布于 2024-10-06 17:38:52 字数 870 浏览 4 评论 0原文

使用 Sharpsvn 的合并方法合并 2 个修订版时,我没有触发冲突事件。我尝试在 SvnMergeArgs 和 SvnUpdateArgs 中使用冲突事件。我调用了 Sharpsvn 的 merge 方法,然后调用了 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
    }

I am not getting the conflict event fired when merging 2 revisions using Merge method of sharpsvn. I tried using the the conflict event in SvnMergeArgs and SvnUpdateArgs. I called the merge method followed by update method of sharpsvn. The merge just overwrites the working copy with the older revision and update do not fire the event.

What am I missing out here that the conflict is not getting fired. The following is my code.

     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
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自在安然 2024-10-13 17:38:52

您当前的代码仅在操作已完成时挂钩事件。如果你想在所有命令上挂钩冲突事件,你应该

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

在调用合并之前使用。

但您也可以将事件挂接到传递给 client.Merge() 的 SvnMergeArgs 上。

Your current code only hooks the event when the operations are already done. If you want to hook the conflict event on all commands you should use a

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

before calling merge.

But you can also hook the event on the SvnMergeArgs that you pass to client.Merge().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文