0

そのため、SVN リポジトリの下にプロジェクト TEST を作成しました。このプロジェクト ディレクトリに SVNKit ライブラリが存在するかどうかを知りたいです。プロトコルはhttpです。

たとえば試してみた...

  private String urlSviluppo = "http://myrepo/SVILUPPO";


  DAVRepositoryFactory.setup();
  SVNURL url = SVNURL.parseURIDecoded(urlSviluppo);

  ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("user", "pwd");      

  DAVRepository repositorySviluppo = (DAVRepository)DAVRepositoryFactory.create(url, null);
  repositorySviluppo.setAuthenticationManager(authManager);

  DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true);
  SVNClientManager clientManager = SVNClientManager.newInstance(options, "user", "pwd");

  clientManager.createRepository(url, true);

リポジトリ/プロジェクト情報にアクセスするにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

"Printing Out a Subversion Repository Tree"の例を見てください。次のコードが含まれています。

SVNNodeKind nodeKind = repository.checkPath( "" ,  -1 );
if ( nodeKind == SVNNodeKind.NONE ) {
      System.err.println( "There is no entry at '" + url + "'." );
      System.exit( 1 );
} else if ( nodeKind == SVNNodeKind.FILE ) {
      System.err.println( "The entry at '" + url + "' is a file while a directory was expected." );
      System.exit( 1 );
}

これにより、あなたの場所がリポジトリのルートとして問題ないかどうかがチェックされます。

Collection entries = repository.getDir( path, -1 , null , (Collection) null );
Iterator iterator = entries.iterator( );
while ( iterator.hasNext( ) ) {
     SVNDirEntry entry = ( SVNDirEntry ) iterator.next( );
     ...

現在のディレクトリのエントリを反復処理します。

if ( entry.getKind() == SVNNodeKind.DIR ) {
    listEntries( repository, ( path.equals( "" ) ) ? entry.getName( ) : path + "/" + entry.getName( ) );
....

サブディレクトリに対して再帰的に呼び出します(アクセスしたい場合)。これにより、関数全体を実行するのに十分な材料が得られます。

于 2011-11-25T18:09:05.710 に答える