2013-04-24 8 views
3

처음에는 Subversion에서 파일을 추가 한 사람을 효율적으로 찾을 수 있습니까? SVNKit Java 라이브러리 또는 명령 행에서 선호됩니다.누가 처음에 Subversion에서 파일을 추가했는지 확인하는 효율적인 방법

나는 최신 버전을 작업 복사본으로 체크 아웃했습니다. svn info은 필자에게 필요한 모든 정보를 제공하지만 초기 저자는 아닙니다 (즉, 누가 파일에 svn add을 실행했는지에 따라).

출력 구문 분석의 문제점은 이름 변경입니다. 예를 들어 리비전 10의 파일 이름이 myfile.txt이고 리비전 12의 파일 이름이 myFancyFile.txt으로 바뀐 경우 수정 10의 원본 작성자가 필요합니다.

삭제 된 파일이나 폴더에 대해서는 파일 현재 작업중인 사본에 존재합니다. 감사합니다.

왜 내가이 일을하고 있습니까? 우리는 파일에서 메타 데이터를 추출하고 있으며 파일을 처음 체크인 한 사람을 알아야합니다. 보고서는 매일 밤 생성됩니다.

답변

1
데이터베이스에보고 같은 노드의 생성 특성에 대한 정보는 포함되어 있지 않습니다

.svn/wc.db는 계시 :

sqlite> .schema nodes 
CREATE TABLE NODES (wc_id INTEGER NOT NULL REFERENCES WCROOT (id), local_relpath TEXT NOT NULL, op_depth INTEGER NOT NULL, parent_relpath TEXT, repos_id INTEGER REFERENCES REPOSITORY (id), repos_path TEXT, revision INTEGER, presence TEXT NOT NULL, moved_here INTEGER, moved_to TEXT, kind TEXT NOT NULL, properties BLOB, depth TEXT, checksum TEXT, symlink_target TEXT, changed_revision INTEGER, changed_date INTEGER, changed_author TEXT, translated_size INTEGER, last_mod_time INTEGER, dav_cache BLOB, file_external TEXT, PRIMARY KEY (wc_id, local_relpath, op_depth)); 

을 따라서, 당신은 내가 사용하려는 저장소를 SVNKit를 들어

를 조회 할 필요가 SVNRepository#getFileRevisions 및/또는 SVNRepository#getLocations (이름이 바뀐 파일 용) 여기에보고 된 첫 번째 개정판에서 원하는 정보를 얻으십시오.

많은 파일에 대한 정보가 필요하면 (마지막 문장에서 알 수 있듯이) 로그를 통해 실행하여 정보를 얻을 수도 있습니다.

+0

이름이 변경된 파일에도 적용됩니까? 'myFancyFile.txt'에서 개정판을 가져오고 개정판 10에서'myFancyFile.txt'에 대한 로그를 얻습니다. – phisch

+0

내 대답을 업데이트했습니다 : 여기에 SVNRepository # getLocations를 사용하십시오. – mstrap

+0

내 경우에는 도움이되지 않았지만 대답으로 받아 들였습니다. 사용할 수있는 스키마/데이터와 필요한 정보를 얻는 것이 어려운 이유를 보여 주셨습니다. – phisch