SharpSvn을 사용하여 작업 복사본 변경 사항을 프로그래밍 방식으로 저장소에 적용하려고합니다. 불행히도 다음과 같은 오류 메시지가 나타납니다. "커밋 중에 오류가 발생했습니다 : 'SomeFile'이 추가 예정이지만 누락되었습니다." (여기서 파일 경로가 제거되었음을 유의하십시오.) 파일이 존재하며 TortoiseSVN을 사용하여 변경 사항을 적용하면 모든 것이 예상대로 작동합니다. 커밋에 대한sharpsvn 누락 된 항목이있는 커밋 실패
내 코드 :
// 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);
}
내가 발견 한 무엇 : 디렉토리는 UpperCases로 작성되지만 오류 메시지가 낮은 경우를 보여줍니다.
편집 : 중 오류가 커밋 : 'D : \ TestManager를 \ SYSDATA \ 시스템'이 VictorSvnCore.DL.SvnCommitException을 : 오류 메시지 (로그) 또한 예정되어 있지만,없는 ---> SharpSvn.SvnWorkingCopyPathNotFoundException : 커밋 실패 (세부 사항을 따릅니다) : ---> SharpSvn.SvnWorkingCopyPathNotFoundException : 'D : \ Test \ System'이 추가 예정이지만 누락되었습니다. --- 내부 예외 스택 추적 끝 --- SharpSvn.SvnClientArgs .HandleResult (SvnClientContext 클라이언트 SvnException 에러 오브젝트 대상)에서 SharpSvn.SvnClientArgs.HandleResult (SvnClientContext 클라이언트 svn_error_t * 에러 오브젝트 대상) SharpSvn.SvnClient.Commit에서 (1 paths, SvnCommitArgs args, SvnCommitResult& result) at VictorSvnCore.DL.SvnClientFacade.Commit(IReadOnlyCollection
ICollection은 1 itemPaths, Strin g logMessage, SvnDepth depth)
정확한 경로를 사용하여 이러한 문제를 해결했습니다. https://stackoverflow.com/a/326153/3809520 – royalTS