SharpSVN.Merge() 不工作,返回 true 但无法看到代码中的变化 [英] SharpSVN.Merge() Not Working, Returns true But not able to see changes in Code

查看:72
本文介绍了SharpSVN.Merge() 不工作,返回 true 但无法看到代码中的变化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying To Merge changes From SVN Folder to My Local folder which has previous revision code and new changes. Below Method takes SrcUrl and Local Path of Folder which has new changes and srcrev holds Revision Number that needs to be merged from svn to my local folder.

SVN.Merge() 返回 True,但在合并后我看不到本地文件夹中的任何代码更改.

SVN.Merge() returns True but am not able to see any code changes in my local folder after merge.

谁能告诉我哪里做错了.

Can anyone please tell me where am doing mistake.

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);
      }
   }
 }

推荐答案

之前是否已经合并了更改?

Was the change already merged before?

Subversion 会跟踪 'svn:mergeinfo' 属性中已经合并的任何内容,如果更改已经合并,您就会成功,就像任何其他 Subversion 客户端一样.

Subversion tracks whatever is already merged in the 'svn:mergeinfo' property, and if the change is already merged you just get success, just like with any other Subversion client.

请注意,您总是希望合并修订范围.您合并两个不同修订之间的更改.svn 客户端通过将传递的修订版的范围减去 1 传递给修订版来实现其 -c 参数,因为这恰好是该特定修订版中发生的变化.

Note that you always want to merge a revision range.. you merge the changes between two different revisions. The svn client implements its -c argument by passing the range of the passed revision minus 1, to the revision as that happens to be what is changed in that specific revision.

这篇关于SharpSVN.Merge() 不工作,返回 true 但无法看到代码中的变化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆