王吉元-NWPU

导航

 
package com.repositoryclient.svnoptions;

import java.io.File;

import org.tmatesoft.svn.core.SVNCommitInfo;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
import org.tmatesoft.svn.core.wc.ISVNOptions;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNCommitClient;
import org.tmatesoft.svn.core.wc.SVNWCUtil;

public class ModelDeveloperUpLoadOption{
    public  boolean doUpLoad(String userName,String passwd,String SVNServerUrl,String dirPath,String folderName){
        SVNClientManager ourClientManager;
        // 初始化支持svn://协议的库
        SVNRepositoryFactoryImpl.setup();
        // 相关变量赋值
        SVNURL repositoryUrl = null;
        SVNURL uploadFolderUrl=null;
        SVNURL[] folder=new SVNURL[1];
        try {
            repositoryUrl = SVNURL.parseURIEncoded(SVNServerUrl);
            uploadFolderUrl=SVNURL.parseURIEncoded(SVNServerUrl+folderName);
            ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
            // 实例化客户端管理类
            ourClientManager = SVNClientManager.newInstance(
                    (DefaultSVNOptions) options, userName, passwd);
            // 要把此目录的内容导入到版本库
            File impDir = new File(dirPath);
            // 执行导入操作
            SVNCommitClient svnCommitClient = ourClientManager.getCommitClient();
            
            folder[0]=uploadFolderUrl;
            svnCommitClient.doMkDir(folder, folderName);
            SVNCommitInfo commitInfo = svnCommitClient.doImport(impDir,
                    uploadFolderUrl, "import operation!", null, true, true,
                    SVNDepth.INFINITY);
            //System.out.println(commitInfo.toString());
            return true;
        } catch (SVNException e) {
            // TODO: handle exception
            e.printStackTrace();
            return false;
        }
    }

}

注意,这个函数的第一个参数要包含新建的文件夹的名称,就是说给出的url一定是一个新的url。第二个参数可能是message之类的意思。

posted on 2013-11-06 09:24  王吉元  阅读(1178)  评论(0编辑  收藏  举报