1

SVNKitを使用してSVNのディレクトリ全体ではなく特定のファイルをコミットするにはどうすればよいですか?

dir全体をコミットするコード:

        ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager((String) session.getAttribute("USERNAME"), (String) session.getAttribute("PASSWORD"));
        repository.setAuthenticationManager(authManager);

        SVNClientManager ourClientManager = SVNClientManager.newInstance(null,repository.getAuthenticationManager());
        SVNUpdateClient updateClient = ourClientManager.getUpdateClient();
        updateClient.doUpdate(wcDir, SVNRevision.HEAD, SVNDepth.INFINITY, false, false);
        ourClientManager.getWCClient().doInfo(wcDir, SVNRevision.HEAD);
        SVNCommitInfo s1=ourClientManager.getCommitClient().doCommit(new File[] {wcDir}, true, "From Code", svnProperties.getRegularProperties(), null, true, false, SVNDepth.INFINITY);
4

1 に答える 1

8

SVNKitをライブラリとして使用する場合は、次のコードを使用してください。

final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
try {
    final SvnCommit commit = svnOperationFactory.createCommit();
    commit.setSingleTarget(SvnTarget.fromFile(file));
    commit.setCommitMessage("Commit message");
    final SVNCommitInfo commitInfo = commit.run();
} finally {
    svnOperationFactory.dispose();
}

コマンドライン機器としてSVNKitを使用する場合は、次のコマンドを実行します。

$ jsvn commit path/to/file

更新: 1.3.xのコードは次のとおりです

final SVNClientManager clientManager = SVNClientManager.newInstance();
try {
    final SVNCommitClient commitClient = clientManager.getCommitClient();
    final SVNCommitInfo commitInfo = commitClient.doCommit(new File[]{file}, false, "Commit message", null, null, false, false, SVNDepth.INFINITY);
} finally {
    clientManager.dispose();
}
于 2013-03-20T12:22:05.157 に答える