我有一個項目會自動合併並從一個分支到另一個分支的用戶選擇的修訂列表提交。如果發生合併衝突,則會中止進程並恢復工作副本。如何使用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