我正在尝试使用SharpSVN库在C#中编写一个简单的应用程序来控制数据库文件,并且在实现原子提交时遇到了一些问题。
这是我想到的工作流程:
我通过调用File.Copy(temporaryPath,workCopyPath)然后调用SvnClient.Add(workCopyPath)
将文件添加到本地工作副本我通过调用File.Copy(temporaryPath,workCopyPath)
添加对本地工作副本的修改我通过调用SvnClient.Delete(workCopyPath)从本地工作副本中删除文件
如果在对工作副本应用更改时出错,我试图通过调用SvnClient.Revert(workCopyRoot)恢复到更改之前的状态 但是这不会还原所有更改(例如,添加的文件在还原后仍处于工作副本中)。
如果在应用更改后一切正常,我会调用SvnClient.Commit(workCopyRoot)将更改应用于远程仓库。
这是将更改应用于工作副本的正确方法,还是应该使用其他内容? 我应该监视工作副本的更改并手动还原它们(没有SvnClient)或者我只是缺少SvnClient.Revert()方法的一些参数吗?
在此先感谢,任何帮助都非常受欢迎