SharpSVN.Merge()不工作,返回true但无法查看代码中的更改

时间:2017-06-25 18:05:49

标签: c# svn merge sharpsvn

我正在尝试将更改从SVN文件夹合并到我的本地文件夹,该文件夹包含以前的修订代码和新更改。下面的方法采用具有新更改的文件夹的SrcUrl和本地路径,并且srcrev保存需要从svn合并到我的本地文件夹的版本号。

SVN.Merge()返回True但在合并后无法在本地文件夹中看到任何代码更改。

任何人都可以告诉我哪里出错了。

public void Merge(String SrcUrl,String localpath,long SrcRev)
{
    using (SvnClient client = new SvnClient())
    {
      try
      {
        SvnMergeArgs mergeArgs = new SvnMergeArgs();
        mergeArgs.Depth = SvnDepth.Infinity;
        //Attaching the events
        mergeArgs.Notify += new EventHandler<SvnNotifyEventArgs>(Merge_Notify);
        mergeArgs.SvnError += new EventHandler<SvnErrorEventArgs>(Merge_Error);
        mergeArgs.Conflict += new EventHandler<SvnConflictEventArgs>(Merge_Confilct);
        mergeArgs.Force = false;

        SvnRevisionRange svnRange = new SvnRevisionRange(SrcRev, SrcRev);

        SvnUriTarget MyTarget = new SvnUriTarget(new Uri(SrcUrl));

        if( client.Merge(localpath, MyTarget, svnRange, mergeArgs))
                    MessageBox.Show("Merged successfully");
     }
     catch (SvnException se)
     {
       MessageBox.Show(se.Message,"svn merge error",MessageBoxButtons.OK,
       MessageBoxIcon.Error);
      }
   }
 }

1 个答案:

答案 0 :(得分:1)

此更改是否已合并?

Subversion跟踪'svn:mergeinfo'属性中已经合并的内容,如果更改已经合并,则只需获得成功,就像使用任何其他Subversion客户端一样。

请注意,您始终要合并修订范围..您可以合并两个不同修订版本之间的更改。 svn客户端通过将传递的修订版减去1的范围传递给修订版来实现其-c参数,因为该版本恰好是该特定修订版中的更改。