2017-04-14 48 views
0

我有一个项目会自动合并并从一个分支到另一个分支的用户选择的修订列表提交。如果发生合并冲突,则会中止进程并恢复工作副本。如何使用SharpSVN以递归方式恢复工作副本中的更改?

然而,当我去再次尝试并选择通常不会对一个纯净的工作副本中冲突的修改,我得到以下错误:

Merge failed: SharpSvn.SvnWorkingCopyException: Can't merge into conflicted node 'C:\SVN\MyProject\MyBranch\ProjectDirectory\SubDirectory\conflicted-file.cs'

即使我做了复归的工作副本,它似乎只恢复svn:mergeinfo属性,但不是内部文件(冲突或不是,旧文件仍然存在)。它是不递归的吗?否则,我没有看到这样做的选择。

这里是我试过到目前为止:

using (var client = new SvnClient()) 
{ 
    // [Authentication code goes here...] 
    var targetPath = [email protected]"{_svnLocalRoot}\{project}\{branch}\"; 

    // Clean Up 
    var cleanupArgs = new SvnCleanUpArgs() 
    { 
     BreakLocks = true, 
     ClearDavCache = true, 
     VacuumPristines = true, 
     FixTimestamps = true 
    }; 
    client.CleanUp(targetPath, cleanupArgs); 

    // Revert 
    var revertArgs = new SvnRevertArgs() 
    { 
     Depth = SvnDepth.Infinity, 
     ClearChangelists = true 
    }; 
    client.Revert(targetPath); 

    // Update 
    var updateArgs = new SvnUpdateArgs() 
    { 
     Depth = SvnDepth.Infinity 
    }; 
    client.Update(targetPath, updateArgs); 

    // [Merge and commit code goes here...] 
} 

短删除整个工作目录,并做了退房(这需要很长的时间),有什么我需要做的就是我的工作拷贝到没有冲突和最新代码的原始状态?

我目前使用SharpSvn.1.9-x64版本1.9005.3940.224

回答

0

这是作为一个错字一样简单。

client.Revert(targetPath); 

应该是:

client.Revert(targetPath, revertArgs); 
相关问题