java中对SVN的相关操作

这篇博客详细介绍了如何使用Java进行SVN操作,包括初始化版本库、登录验证、文件提交、更新、添加文件、解决冲突等核心功能。通过示例代码展示了SVNClientManager和SVNRepository的使用,帮助开发者理解和实现SVN的日常管理工作。
摘要由CSDN通过智能技术生成



String conflictType = "";
String conflictFile = "";
SVNRepository repository;
SVNClientManager clientManager;
private Logger logger = LoggerFactory.getLogger(SVNUtil.class);

/**
* 通过不同的协议初始化版本库
*/
public static void setupLibrary() {
DAVRepositoryFactory.setup();
SVNRepositoryFactoryImpl.setup();
FSRepositoryFactory.setup();
}
/**
* SVN登录
* @param svnRoot 代码库路径
* @param map 登录信息
* @return 结果
* @throws UnsupportedEncodingException 抛出异常
*/
public boolean logSVN(String svnRoot,Map<String,String> map) throws UnsupportedEncodingException{
// 正式
//Map<String,String> map = CommonUtil.readFile();
if(map.size() == 0 ){
logger.info("从 配置文件读取出现异常");
return false;
}
String svnpass = DESEncryptionUtil.decrypt(map.get("svnpassword"), CMSConstant.readerDesAccountId, CMSConstant.readerDesKey);
try {
loginSVN(svnRoot,map.get("svnusername"),svnpass);
return true;
} catch (Exception e) {
logger.info("登录异常"+e);
return false;
}
}




/**
* SVN登录验证
* @param svnRoot 代码库路径
* @param username 用户名
* @param password 密码
*/
public void loginSVN(String svnRoot, String username,String password) {
// 初始化版本库
setupLibrary();


// 创建库连接
repository = null;
try {
repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(svnRoot));

// 身份验证
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password);

// 创建身份验证管理器
repository.setAuthenticationManager(authManager);

DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true);
clientManager = SVNClientManager.newInstance(options,authManager);
} catch (SVNException e) {
logger.info(e.getErrorMessage().toString());
}
}

/**
* Commit work copy's change to svn
* @param clientManager
* @param wcPath 
* working copy paths which changes are to be committed
* @param commitMessage
* commit log message
* @return SVNCommitInfo
*/
public SVNCommitInfo commit(File wcPath,String commitMessage) {
try {
return clientManager.getCommitClient().doCommit(
new File[] { wcPath }, false, commitMessage, null,
null, false, false, SVNDepth.INFINITY);
} catch (SVNException e) {
logger.error(e.getErrorMessage().toString());
}
return null;
}

/**
* 将文件添加到本地版本库中
* @param file 要添加的文件
* @throws SVNException SVNException
*/
public void addFile(File file) throws SVNException{
SVNStatus statu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值