【发布时间】:2017-12-04 09:59:28
【问题描述】:
我正在尝试使用 SharpSvn 以编程方式将我的工作副本更改提交到存储库。不幸的是,我收到以下错误消息:“提交期间出错:'SomeFile' 计划添加,但丢失了。” (请注意,我在这里删除了文件的路径)。该文件已存在,如果我使用 TortoiseSVN 提交更改,一切都会按预期进行。
我的提交代码:
// use throw on error, since it provides more information why the operation failed
// might slow down a little bit, because of the exception handling
SvnCommitArgs commitArgs = new SvnCommitArgs() { ThrowOnError = true, Depth = (SharpSvn.SvnDepth)depth, LogMessage = logMessage };
List<Tuple<string, SvnCommitItemChangeType>> committedItems = new List<Tuple<string, SvnCommitItemChangeType>>();
SharpSvn.SvnCommitResult commitResult;
using (var svnClient = new SvnClient())
{
svnClient.Notify += (sender, notifyEventArgs) =>
{
switch (notifyEventArgs.Action)
{
case SvnNotifyAction.CommitReplacedWithCopy:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.ReplacedByCopy));
break;
case SvnNotifyAction.CommitAddCopy:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.CopyAdded));
break;
case SvnNotifyAction.CommitReplaced:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Replaced));
break;
case SvnNotifyAction.CommitDeleted:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Deleted));
break;
case SvnNotifyAction.CommitAdded:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Added));
break;
case SvnNotifyAction.CommitModified:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Modified));
break;
}
};
svnClient.Commit(itemPaths.ToList(), commitArgs, out commitResult);
}
我注意到:目录是用大写字母写的,但错误消息显示小写。
编辑:
错误消息(日志):
VictorSvnCore.DL.SvnCommitException:提交期间出错:“D:\TestManager\SysData\System”已计划添加,但缺少 ---> SharpSvn.SvnWorkingCopyPathNotFoundException:提交失败(详情如下):---> SharpSvn.SvnWorkingCopyPathNotFoundException : 'D:\Test\System' 计划添加,但缺少
--- 内部异常堆栈跟踪结束 ---
在 SharpSvn.SvnClientArgs.HandleResult(SvnClientContext 客户端,SvnException 错误,对象目标)
在 SharpSvn.SvnClientArgs.HandleResult(SvnClientContext 客户端,svn_error_t* 错误,对象目标)
在 SharpSvn.SvnClient.Commit(ICollection1 paths, SvnCommitArgs args, SvnCommitResult& result)
at VictorSvnCore.DL.SvnClientFacade.Commit(IReadOnlyCollection1 itemPaths, String logMessage, SvnDepth depth)
【问题讨论】:
-
我通过使用确切路径解决了这些答案的问题:stackoverflow.com/a/326153/3809520