利用SVNKit进行版本库的树的导出
public List searchByTree(String userName,String passwd,String SVNServerUrl,String dirUrl){
//这里有点像 storeManager的查看功能,但是是从 应用模型的目录开始查看的。
SVNURL repositoryUrl=null;
SVNRepository repository=null;
SVNRepositoryFactoryImpl.setup();
try {
repositoryUrl=SVNURL.parseURIEncoded(SVNServerUrl);
repository=SVNRepositoryFactory.create(repositoryUrl); ISVNAuthenticationManager authenticationManager=SVNWCUtil.createDefaultAuthenticationManager(userName, passwd);
repository.setAuthenticationManager(authenticationManager);
result.clear();
FileNode rootNode=new FileNode("root", SVNServerUrl, , "", , null, null);
listTree(repository, dirUrl,rootNode);
result.add(rootNode);
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
public void listTree(SVNRepository repository,String dirUrl,FileNode node){
String currentPath="";
List list=new ArrayList();
Collection root;
try {
String finalPath[]=dirUrl.split("/");
for(int i=;i<finalPath.length;i++){
currentPath+=finalPath[i]+"/";
}
System.out.println("****************: "+currentPath);
root=repository.getDir(currentPath, -, null, (Collection)null);
Iterator iterator=root.iterator();
while (iterator.hasNext()) {
SVNDirEntry entry=(SVNDirEntry)iterator.next();
if (entry.getKind()==SVNNodeKind.DIR) {
FileNode subDirNode=new FileNode(entry.getName(), entry.getURL().toString(),entry.getRevision(),entry.getAuthor(),entry.getSize(), entry.getDate(), null);
System.out.println("********"+entry.getURL());
listTree(repository, entry.getURL().toString(), subDirNode);
list.add(subDirNode);
} else {
FileNode subnode=new FileNode(entry.getName(), entry.getURL().toString(),entry.getRevision(),entry.getAuthor(),entry.getSize(), entry.getDate(), null);
list.add(subnode);
} }
} catch (SVNException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
node.setChildren(list);
}
以上这段代码,实现了将版本库中的东西组织成List的操作。最后返回的result就是要的list。
调用的时候这样子:
ModelDeveloper developer=new ModelDeveloper();
List ddList=developer.searchByTree("test", "test", "svn://localhost/", ""); //当最后一个参数为“‘时,就是从根目录检索,导出整个结构树。当最后一个参数为"svn://localhost/aa/b"时,就是从版本库的aa/b下的东西导出。
treeViewer.setInput(ddList);
利用SVNKit进行版本库的树的导出的更多相关文章
- 使用SVNkit删除版本库的文件
源网址:http://wiki.svnkit.com/Committing_To_A_Repository Editing Operation: commiting to a repository T ...
- redmine整合GIT版本库
redmine整合GIT版本库 服务器的环境: Ubuntu 11.10 64位 Redmine 1.4.5.stable.10943 git version 1.7.5.4 + gitolite ...
- git中的版本库,暂存区和工作区
- SVN+post-commit 搭建自动同步版本库
一.需求. 本地文件上传到测试环境svn,测试环境同步到生产环境rsync.开发环境与测试环境与生产环境分离. 二.搭建SVN服务器. yum -y install subversion && ...
- 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目
分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...
- OpenJDK-study-001 windows上安装Mercurial 4.4.1 克隆OPENJDK版本库
下载安装 1.下载Mercurial 进入https://www.mercurial-scm.org/wiki/Mercurial下载,windows上傻瓜式安装的,安装好之后,命令行进入安装目录, ...
- Git工作区、暂存区和版本库
基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".git目录下" 下的in ...
- SVN访问版本库精细的权限控制
SVN精细权限控制本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内容,不是 ...
- SVN版本库备份和恢复
1.版本库备份 1.1.svnadmin dump方式备份 此方法借助的是Subversion官网推荐的svnadmin dump备份方式,它的优点是比较灵活,既可以进行全量备份又可以进行增量备份,并 ...
随机推荐
- android用canvas绘制两种波纹效果
波形效果有几种不同的呈现形式,比如从中间向四周散开的波形,也就是熟知的水涟漪:还有上下波动的曲线,像五线谱等.英文中可以称作Wave或者Ripple,所以暂且叫它们WaveView.WaveLayo ...
- boost::thread之while(true)型线程终结方法
我们的程序中经常会用到线程来执行某些异步操作,而有些时候我们的线程执行的函数是这个样子的: void ThreadBody() { while( true ) { std::cout << ...
- Windows 7如何建立一个FTP的快捷方式
原来,使用Windows XP的时候,在IE6的地址栏里输入FTP服务器的地址,就可以打开一个资源管理器的界面来管理文件.但是,随着IE的版本的提升或是装了Windows 7,原来的这种方法就不能用了 ...
- 在VC下显示JPEG、GIF格式图像的一种简便方法
在VC下显示JPEG.GIF格式图像的一种简便方法 一. 引言 JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛 ...
- QT解析命令行(QCommandLineOption和QCommandLineParser类)
Qt从5.2版开始提供了两个类QCommandLineOption和QCommandLineParser来解析应用的命令行参数. 一.命令行写法命令行:"-abc" 在QComma ...
- OCA读书笔记(8) - 管理用户安全
创建用户:create user +用户 default tablespace + 表空间名 identified + 验证方式 SQL> create user easthome profil ...
- C/C++中char* 与char []定义的区别
转载请注明来自souldak,微博:@evagle Question: 给你一个字符串例如abb输出它包含的字符的所有可能排列. 例如abb输出3个:abb,bab,bba Answer: 假设我们自 ...
- Redis intset
Redis intset也非常简单.它是一个有序整数集合,实际上是一个有序数组,查找时二分查找,添加时可能需要内存挪动.唯一不同的是,它的整数类型是变动的,可以支持int16,int32,int64三 ...
- 仿ios版微信应用源代码
仿微信基本功能. 基于XMPPserver的即时通信以及交友client. ----第一期代码的功能例如以下---- 1.新用户注冊 2.登陆并连接XMPPserver 握手 保持 ...
- [计算机基础]关于实体( Entity )和模型( Model )
实体与模型的浅析 在日常开发过程中经常看到Entity,Model,DataModel,它们之间到底有什么异同?下面是我个人的一些理解. 一.Entity,Model,它们是什么? 维基百科描述: 实 ...