2010-04-07 3 views
1

SVN Eclipese EFS 플러그인을 만들고 항목 이름을 가져 오는 데 문제가 있습니다.svnkit : 항목 이름을 가져 오는 중 문제가 발생했습니다.

는`//이 제공 컬렉션 개체에 디렉토리의 내용을 꺼냅니다 및 디렉토리 항목 자체를 반환 SVNRepository :

나는에 전화를 걸 때.

SVNDirEntry getDir (문자열 경로, 긴 개정, 부울 includeCommitMessages, 수집 항목)`이 올바르게 제공 경로에 대한 항목을 반환

그러나, 그것은 "반환에"이름 "값을 설정하지 않습니다 "항목. 컬렉션에 반환 된 항목은 모두 정상입니다.

이유가 누구인지 아시겠습니까? 그리고/또는 해결 방법이 있다면?

참조 : http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html#getDir(java.lang.String, 긴, 부울, java.util.Collection이)

답변

2

을 "반환 된"항목에 "이름"값을 설정하지 마십시오. 참고로, 컬렉션에 반환 된 항목은 모두 정상입니다.

"ls"명령처럼 처리하여 디렉토리의 항목을 나열하십시오. 디렉토리 자체는 "."로 표시됩니다. 또는 항목의 이름이 디렉토리와 관련이 있고 디렉토리 자체의 경우 빈 문자열이라고 말하는 것이 더 좋습니다.

왜 이것이 아는 사람입니까? 그리고/또는 해결 방법이 있다면?

dirEntry.getURL()을 사용하면 URL 경로에서 이름을 계산할 수 있습니다. 또한 디렉토리 이름은 "path"매개 변수의 일부이거나 SVNRepository 객체 위치 URL의 일부입니다.

1

내가 확인했습니다 항상 이름 속성은 빈 문자열로 설정 한 getDir() 메소드에 의해 반환되는 SVNDirEntry.

그러나이 방법을 사용하여 디렉토리 목록을 가져 오는 경우 각 디렉토리 항목의 이름이 적절하게 지정됩니다.

그 행동이 다소 버그가 생각하는 당신은 여전히 ​​URL을 통해 SVNDirEntry의 이름을 찾을 수 있지만 : 그러나, 아무튼를 제대로 제공되는 경로에 대한 항목을 반환

SVNDirEntry dirEntry = repository.getDir("branches/1.0", -1, false, null); 
String name = SVNPathUtil.tail(dirEntry.getURL().getPath()); 
관련 문제