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