使用SharpSVN库应用,提交或恢复挂起的更改

时间:2014-09-17 12:00:05

标签: c# svn sharpsvn

我正在尝试使用SharpSVN库在C#中编写一个简单的应用程序来控制数据库文件,并且在实现原子提交时遇到了一些问题。

这是我想到的工作流程:

  • 用户在本地更改数据库中的某些文件
  • 与源代码管理进行比较并检查一些有关评论的更改
  • 遍历所有选定的更改(可以是:添加文件,修改,删除)并将其应用于SVN工作副本
  • 如果所有内容都成功应用于工作副本,请调用commit,否则还原所有
  • 如果提交不成功则还原所有

我通过调用File.Copy(temporaryPath,workCopyPath)然后调用SvnClient.Add(workCopyPath)

将文件添加到本地工作副本

我通过调用File.Copy(temporaryPath,workCopyPath)

添加对本地工作副本的修改

我通过调用SvnClient.Delete(workCopyPath)从本地工作副本中删除文件

如果在对工作副本应用更改时出错,我试图通过调用SvnClient.Revert(workCopyRoot)恢复到更改之前的状态 但是这不会还原所有更改(例如,添加的文件在还原后仍处于工作副本中)。

如果在应用更改后一切正常,我会调用SvnClient.Commit(workCopyRoot)将更改应用于远程仓库。

这是将更改应用于工作副本的正确方法,还是应该使用其他内容? 我应该监视工作副本的更改并手动还原它们(没有SvnClient)或者我只是缺少SvnClient.Revert()方法的一些参数吗?

在此先感谢,任何帮助都非常受欢迎

0 个答案:

没有答案