2017-04-14 71 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); 
相關問題