如题!
另,版本控制使用的是svn。
如果对这方面比较了解请不吝赐教!
要想实现打增量包要实现两个基本功能:
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拷贝文件需要根据你工程的结构来处理
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(1)
要想实现打增量包要实现两个基本功能:
1.checkout 相应的svn工程
使用svnant
2.查询相应的svnlog,并根据svnlog拷贝相应的文件
使用svnkit.jar可以查询svn工程的日志。
要在ant中使用的话,可以自己实现main方法,在ant中引入
根据log拷贝文件需要根据你工程的结构来处理