-SVNクライアント

JavaSVNでリポジトリにつなぐコードを書いてみたらとてつもなく簡単だったので驚いた。かなりいろんなことができると思います。
レポジトリはすでにあるもの(E:\MyRepository)につないで見ました。普段、TortoiseSVNで使ってるのでなんのサーバーも立ってないため、Windows版のsvnserveを起動。

E:>svnserve -d -r \MyRepository

以下のテストコードを実行。あたりさわりない「Maya」フォルダを閲覧。他は請求書や帳簿や役会議事録とかが入ってるフォルダなので。

import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
import org.tmatesoft.svn.core.io.SVNException;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.io.SVNRepositoryLocation;
public class SVNMain {
    public static void main(String[] args) {
        SVNRepositoryFactoryImpl.setup();
        String rep = "svn://localhost:3690/";
        try {
            SVNRepositoryLocation location = SVNRepositoryLocation.parseURL(rep);
            SVNRepository repository = SVNRepositoryFactory.create(location);
            long latestRev = repository.getLatestRevision();
            System.out.println("[" + location.toString() + "] rev=" + latestRev);
            List list = (List)repository.getDir(
                "/Maya", latestRev, null, new ArrayList());
            for(Iterator it = list.iterator(); it.hasNext(); ) {
                SVNDirEntry entry = (SVNDirEntry)it.next();
                System.out.println(entry.getName() + ":"  + entry.getRevision() +
                    entry.getKind() + "[" + entry.size() + "byte]");
            }
        } catch (SVNException e) {
            e.printStackTrace();
        }
    }
}

結果は以下の通り。

[svn://localhost:3690/] rev=70
MayaTutorial.doc:68[205824byte]
JavaServer Templates Maya.ppt:69[87040byte]
JavaServer Templates Maya.doc:70[308224byte]
maya_face001.jpg:69[65765byte]
Maya_gray.png:69[7257byte]

リビア。現時点でJavaSVNはsvn://、svn+ssh://、http://、http://をサポートしてますが、file://プロトコルをサポートしていません。そうはドキュメントに書いてないみたいだけど、実際、実装がありませんでした。
追記
JavaベースのWEB-SVNインターフェイス作るのも、結構現実的かもしれません。WEBでちょっと探した限りでは、CおよびC#PHPなどの実装はあるけど、Javaの実装が見当たらないが。。。