使用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
}
答案 0 :(得分:4)
您的当前代码仅在操作已完成时挂钩事件。如果要在所有命令上挂钩冲突事件,则应使用
client.Conflict += new EventHandler<SvnConflictEventArgs>(args_Conflict);
在调用merge之前。
但您也可以将事件挂钩到传递给client.Merge()的SvnMergeArgs上。