要想实现打增量包要实现两个基本功能:
1.checkout 相应的svn工程
使用svnant
2.查询相应的svnlog,并根据svnlog拷贝相应的文件
使用svnkit.jar可以查询svn工程的日志。
要在ant中使用的话,可以自己实现main方法,在ant中引入
setupLibrary();
SVNRepository repository = null;
try {
repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
repository.setAuthenticationManager(authManager);
Collection<SVNLogEntry> logEntries = null;
try {
logEntries = repository.log(new String[]{""}, null, revision, revision, true, true);
} catch (Exception e) {
System.out.println("error while collecting log information for '"
+ url + "': " + e.getMessage());
System.exit(1);
}
for(Iterator<SVNLogEntry> entries = logEntries.iterator(); entries.hasNext();){
SVNLogEntry logEntry = (SVNLogEntry)entries.next();
System.out.println("---------------------------------------------");
System.out.println("revision: " + logEntry.getRevision());
System.out.println("author: " + logEntry.getAuthor());
System.out.println("date: " + logEntry.getDate());
System.out.println("log message: " + logEntry.getMessage());
if(logEntry.getChangedPaths().size()>0){
System.out.println();
System.out.println("changed paths:");
Set changedPathSet = logEntry.getChangedPaths().keySet();
SVNLogEntryPath entryPath = null;
for(Iterator changedPaths = changedPathSet.iterator(); changedPaths.hasNext();){
entryPath = (SVNLogEntryPath)logEntry.getChangedPaths().get(changedPaths.next());
System.out.println(" "
+ entryPath.getType()
+ " "
+ entryPath.getPath()
+ ((entryPath.getCopyPath() != null) ? " (from "
+ entryPath.getCopyPath() + " revision "
+ entryPath.getCopyRevision() + ")" : ""));
//TODO 这里可以实现根据log拷贝相应的文件
}
}
}
private static void setupLibrary(){
DAVRepositoryFactory.setup();
SVNRepositoryFactoryImpl.setup();
FSRepositoryFactory.setup();
}
根据log拷贝文件需要根据你工程的结构来处理
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。