SVNの開始リビジョン番号と終了リビジョン番号があるとします。Javaでそれらの変更されたリストを取得するためのSDKAPIはありますか?TortoiseSVNを使用しています。ありがとう。
質問する
7751 次
1 に答える
10
正しく理解できているかどうかわかりません
が、SVN で動作する Java ライブラリについては、SVNKit を確認してください。
リポジトリの履歴を取得する方法のサンプル コードがあります: http://wiki.svnkit.com/Printing_Out_Repository_History
編集:
svnkit 1.7.6 と svn コマンド ライン バージョン 1.6.5 を使用してサンプル コードを試しました。
svn log [リポジトリ URL] -r1000000:1000002
どちらも 3 行の履歴を返します。あなたがしていることに問題があると思います。
これがJavaコードです:
import java.util.Collection;
import java.util.Iterator;
import org.tmatesoft.svn.core.SVNLogEntry;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.wc.SVNWCUtil;
public class TestSvnLog {
/**
* @param args
*/
public static void main(String[] args) {
DAVRepositoryFactory.setup( );
String url = "[REPOSITORY URL]";
String name = "anonymous";
String password = "anonymous";
long startRevision = 1000000;
long endRevision = 1000002; //HEAD (the latest) revision
SVNRepository repository = null;
try {
repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( name, password );
repository.setAuthenticationManager( authManager );
Collection logEntries = null;
logEntries = repository.log( new String[] { "" } , null , startRevision , endRevision , true , true );
for ( Iterator entries = logEntries.iterator( ); entries.hasNext( ); ) {
SVNLogEntry logEntry = ( SVNLogEntry ) entries.next( );
System.out.println (String.format("revision: %d, date %s", logEntry.getRevision( ), logEntry.getDate()));
}
} catch (Exception e){
}
}
}
于 2012-11-16T09:54:43.333 に答える