当前位置:首页 > 开发 > 开源软件 > 正文

svn kit 简单使用

发表于: 2014-07-21   作者:antlove   来源:转载   浏览次数:
摘要: 1. util.DefaultSVNAnnotateHandler.java package util; import java.io.File; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.tmatesoft.svn.core.SVNException;

1. util.DefaultSVNAnnotateHandler.java

package util;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.wc.ISVNAnnotateHandler;

public class DefaultSVNAnnotateHandler implements ISVNAnnotateHandler {

	private Map<Integer,String> lineAuthorMap = new HashMap<Integer,String>();
	
	public void handleEOF() throws SVNException {
		// TODO Auto-generated method stub

	}

	public void handleLine(Date date, long revision, String author, String line)
			throws SVNException {

	}

	public void handleLine(Date date, long revision, String author,
			String line, Date mergedDate, long mergedRevision,
			String mergedAuthor, String mergedPath, int lineNumber)
			throws SVNException {
		lineAuthorMap.put(lineNumber, author);

	}

	public boolean handleRevision(Date date, long revision, String author,
			File contents) throws SVNException {
		// TODO Auto-generated method stub
		return false;
	}

	public Map<Integer, String> getLineAuthorMap() {
		return lineAuthorMap;
	}
	
	

}

 

2. util.SVNUtil.java

package util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.logging.Logger;

import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.auth.BasicAuthenticationManager;
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNRevision;


public class SVNUtil {
	
	private static Logger logger = Logger.getLogger(SVNUtil.class.getName());
	
	private static SVNClientManager getSVNClientManager(){
		SVNClientManager svnClientManager = SVNClientManager.newInstance();
		
		ISVNAuthenticationManager authManager = new BasicAuthenticationManager("xiao", "xiao");
		
		svnClientManager.setAuthenticationManager(authManager );
		
		return svnClientManager;
	}
	
	
	public static File getFileFromSVN(String filePath,  
            long revision,String destFilePath) {  
		File file = new File(destFilePath);
		SVNURL reponsitoryURL = null;
		FileOutputStream fos = null;
		try {
			reponsitoryURL = SVNURL.parseURIEncoded(filePath);
			
			fos = new FileOutputStream(file);
			
			SVNRepository  reponsitory = getSVNClientManager().createRepository(reponsitoryURL, false);

			reponsitory.getFile("", revision, null, fos);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}finally{
			if(fos!=null){
				try {
					fos.close();
				} catch (IOException e) {
					logger.warning(e.getMessage());
				}
			}
		}
		return file;
    }  
	
	
	public static Map<Integer,String> getFileInfo(String filePath,long revision) throws SVNException{
		SVNURL url = SVNURL.parseURIEncoded(filePath);
		SVNRevision pegRevision = SVNRevision.create(revision);
		SVNRevision startRevision = SVNRevision.create(0);
		SVNRevision endRevision = SVNRevision.create(revision);
		DefaultSVNAnnotateHandler handler = new DefaultSVNAnnotateHandler();
		getSVNClientManager().getLogClient().doAnnotate(url, pegRevision, startRevision, endRevision, handler);
		
		return handler.getLineAuthorMap();
	}
}

 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>svn</groupId>
	<artifactId>svn</artifactId>
	<packaging>jar</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>svn</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>org.tmatesoft.svnkit</groupId>
			<artifactId>svnkit</artifactId>
			<version>1.8.5</version>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

 

svn kit 简单使用

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
已经安装了的小伙伴请直接看三步骤 一、下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEb
http://my.oschina.net/joanfen/blog/194491#OSC_h4_12 摘要 CornerStone是Mac OS X系统下非常好用
已经安装了的小伙伴请直接看三步骤 一、下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEb
已经安装了的小伙伴请直接看三步骤 一、下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEb
TortoiseSVN客户端下载连接:http://tortoisesvn.net/downloads.html 注意:根据自己电脑版本下载安
此文我写的有点乱,实际操作一下,发现其实它很简单。 SVN是什么? SVN的全称是Subversion。Subvers
工作蛮久了,关于代码管理工具:开源代码一般都是使用github,它的使用大多都是以命令行的形式进行
SVN 的简单用法 SVN是一种版本管理,对于普通用户来说主要是利用它从网络上获取某个软件的最新版本
前言 http://segmentfault.com/blog/cruise/1190000001671119 http://www.cocoachina.com/ios/201411
一个图像图形类库,可以方便地给图像加上各种效果,包括: 1. 给图像加上倒影; 2. 给图像加上旋转
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号