我正在尝试将更改从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);
}
}
}
答案 0 :(得分:1)
此更改是否已合并?
Subversion跟踪'svn:mergeinfo'属性中已经合并的内容,如果更改已经合并,则只需获得成功,就像使用任何其他Subversion客户端一样。
请注意,您始终要合并修订范围..您可以合并两个不同修订版本之间的更改。 svn
客户端通过将传递的修订版减去1的范围传递给修订版来实现其-c
参数,因为该版本恰好是该特定修订版中的更改。