2013-08-08 4 views
1

Java에서 사전 커밋 훅을 쓰고 있습니다. 사전 커밋 훅 (배치 파일)은 repositoryLocation, transactionId 매개 변수로 Java 프로그램을 호출합니다. 커밋 중에 XML 파일의 유효성을 검사해야하며 그 중 하나라도 유효하지 않은 것으로 보이는 경우 프리 - 커밋 후크로 0이 아닌 종료 코드를 반환하고 전체 커밋 트랜잭션을 롤백합니다. ,svnkit : 미리 커밋 된 후크 중에 파일 내용을 업로드하십시오.

SVNRepository repository = ...; 
SVNProperties fileProperties = new SVNProperties(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 

repository.getFile(changeEntry.getCopyFromPath() , revisionNum , fileProperties , baos); 
log.debug("<![CDATA["+baos.toString()+"]]>"); 

하지만 내가 작업 복사본의 (컨텐츠를 업로드되는 파일의 내용에 액세스 할 수 없습니다입니다 :

나는 파일의 개정 여기에 다음과 같은 방법을 내용 코드에 액세스 할 수 있습니다 사용자가 저지른). 나는 SVN에 아무것도 쓰고 싶지 않다. 나는 업로드 된 파일의 내용을 읽고 나서 유효성을 검사해야한다. 커밋 또는 롤백은 Java 프로그램이 완료된 직후 SVN에 의해 ​​수행됩니다.

누구든지이 문제를 해결할 수 있습니까? 후크의 박쥐 파일 내부

답변

1

당신은 거래의 파일 목록을 얻기 위해와 changed 명령 파일 이름에 대한 svnlook changed ...을 사용할 수 있습니다 - svnlook cat ... FILENAME를 표준 출력에 게으른 오소리의 하나에

0

감사 파일의 내용을 얻기 위해 내 동료의 조언에, 난 그냥 그렇게

org.tmatesoft.svn.core.wc.admin.SVNLookClient.doCat(File repositoryRoot, String path, String transactionName, OutputStream out) throws SVNException 
보고

SVNLOOK CAT repoPath -t txn 

내가, 재발견하는 데 필요한 명령임을 발견

함수를 사용하면 필요한 출력 스트림을 얻을 수 있습니다 & 나머지 트릭을 수행합니다 ;-)