2011-03-10 1 views
1

네트워크 공유에있는 SVN 저장소의 작업 복사본 저장소 URL을 얻으려고합니다. \\host\D\directory\SharpSvn : 네트워크 공유에서 SVN 작업 복사본에 대한 정보를 가져올 수 없습니다.

다음 코드가 실행되고 있습니다.

SvnClient svnClient = new SharpSvn.SvnClient(); 
SvnInfoEventArgs svnInfo; 
svnClient.GetInfo(SvnTarget.FromString("\\\\host\\D\\directory\\"), out svnInfo); 
Uri repositoryUrl = svnInfo.Uri; 

그리고 GetInfo에서이 오류가 발생했습니다.) 방법 :

'\host\D' does not exist 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: SharpSvn.SvnException: '\host\D' does not exist 

스택 추적 :

[SvnException: '\host\D' does not exist] 

[SvnInvalidNodeKindException: '\host\D' is not a working copy] 
    SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, SvnException error) +232 
    SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, svn_error_t* error) +80 
    SharpSvn.SvnClient.Info(SvnTarget target, SvnInfoArgs args, EventHandler`1 infoHandler) +443 
    SharpSvn.SvnClient.GetInfo(SvnTarget target, SvnInfoEventArgs& info) +117 

오류가 있거나 때로는 SharpSvn과 함께 사용하는 더 좋은 방법을 알고 계십니까?

답변

0

'작업 복사본이 아닙니다'예외의 원인은 svn 클라이언트의 설정이 .svn 디렉토리 대신 _svn을 사용하고 있기 때문일 수 있습니다.

svn 클라이언트 설정에서 올바른 확장명을 사용하고 있는지 확인하십시오.

0

Subversion 1.6은 일부 코드 경로에서 \ path \ subpath \를 \ path \ subpath로 자동으로 정규화했습니다. 이로 인해 UNC 경로 및/또는 드라이브의 루트에서 작업 복사본을 사용할 수 없었습니다.

Subversion 1.7에서 이러한 문제가 해결되었으며 이제 두 시나리오가 완전히 지원됩니다. 그러나 성능상의 이유로 로컬 하드 디스크에서 작업 복사본을 사용하는 것이 좋습니다.

0

이것은 Tortoise 예외가 아닌 SVN 특정 예외 (SvnInvalidNodeKindException)입니다. 그러나 Tortoise를 설치하거나 .NET 용 SharpSVN 라이브러리를 사용하여 SVN과 통합하면이 문제가 발생할 수 있습니다.

문제는 커밋중인 경로의 길이가 너무 길다는 점입니다. 두 가지 이상한 행동이 있습니다. 로컬 작업 복사본의 Windows 길이가 너무 긴 경우 SVN은 잘못된 파일을 체크 아웃합니다 (항상 확실하지는 않지만). 예외는 발생하지 않습니다. 볼 수있는 다른 동작은 커밋을 수행하여 파일을 바꾸려고하면 SVN이 예외 (SvnInvalidNodeKindException)를 throw하고 ['\\folder\\folder\\' is not a working copy이라고 말하고 아무 것도 커밋하지 않는다는 것입니다.

솔루션 :

짧은 무언가에 대한 경로를 줄이십시오. 최대 값은 무엇인지 모르지만 Windows API를 기반으로하는 파일 경로의 최대 길이가 같다고 상상해보십시오. Microsoft는이 문제를 해결하지 못했으며 오늘날에도 여전히 문제입니다. 나는 오래 전에이 문제에 대해 Windows에 게시했지만 게시물을 찾을 수 없습니다.

관련 문제