`

利用SVNKit进行版本库的树的导出

    博客分类:
  • SVN
阅读更多
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, 0, "", 0, 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=3;i<finalPath.length;i++){
                currentPath+=finalPath[i]+"/";
            }
            System.out.println("****************:     "+currentPath);
            root=repository.getDir(currentPath, -1, 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);

 

 

分享到:
评论

相关推荐

    java实现svn,svnkit框架的简单应用

    Java实现SVN,主要借助的...通过实践,你可以掌握如何利用SVNKit进行更复杂的操作,如分支管理、标签创建、冲突解决策略等。同时,熟悉Subversion的基本概念和术语也是必不可少的,这将有助于更好地理解和使用SVNKit。

    SVNKit1.7.9

    SVNKit 1.7.9 是一个针对Subversion(SVN)的纯Java实现的库,它允许开发者在Java应用程序中直接集成版本控制系统的核心功能。这个版本的SVNKit是一个重要的更新,提供了对Subversion 1.7.x版本协议的支持,同时也...

    svnkit-1.7.11

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)客户端的核心功能,允许开发者在Java应用程序中集成版本控制系统。这个“svnkit-1.7.11”压缩包包含了SVNKit的特定版本——1.7.11,这是一个稳定且广泛使用的...

    SVNkit的pom文件 和实例代码

    在实际开发中,开发者可以根据需求利用SVNKit提供的各种API来实现更复杂的功能,如冲突解决、版本回退、分支管理等。通过这些代码,开发者可以更好地理解如何将SVNKit集成到他们的Java项目中,以便于版本控制和团队...

    svn提交日志导出工具v4.6

    利用svnkit的强大功能,这款工具能够轻松地获取和解析svn仓库的提交日志,进一步提升了svn操作的效率。 svn提交日志导出工具v4.6相较于早期版本,增加了几个重要的特性。首先,它引入了历史svn URL备份功能,这意味...

    svn提交日志导出工具v4.5

    该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够在不依赖操作系统特定功能的情况下,与SVN服务器进行交互。 该工具的核心功能包括: 1. **日志导出**:用户可以使用此工具查询和导出...

    SVN比较文件.zip

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件。...通过深入理解和实践这些知识点,开发者可以充分利用SVNKit库,高效地管理和比较SVN版本库中的文件,提升团队协作效率。

    org.tmatesoft.svn_1.3.2.eclipse.zip

    标题 "org.tmatesoft.svn_1.3.2.eclipse.zip" 暗示这是一个针对Eclipse集成开发环境(IDE)的Subversion(SVN)客户端插件版本1.3.2的压缩包。...安装和配置该插件是利用Eclipse进行团队协作和版本管理的重要步骤。

    MyEclipse_SVN

    5. 使用SVN库:在MyEclipse中,还可以创建、导入、导出和删除SVN库,管理项目版本控制。 在提供的文件列表中,我们可以看到一些关键组件: - `svnkit.jar`和`svnkit-javahl.jar`:这是SVNKit的JAR文件,SVNKit是一...

    myeclipse配置svn,附工具,及教程

    4. **导入与导出项目**:配置好连接后,你可以通过"Team" -&gt; "Import..."或"Export..."菜单将项目导入或导出到SVN仓库。在导入过程中,MyEclipse会自动检测项目的版本冲突,并帮助你解决。 5. **日常操作**:在...

    jsvn安装文件

    JSVN是一款基于Java开发的命令行SVN(Subversion)客户端工具,用于版本控制系统操作,如版本库的创建、更新、提交、导出等。在Linux环境中安装JSVN,需要理解一些基本的Linux命令行操作和SVN的概念。以下是相关的...

    eclipse 4.5 SVN 插件

    6. **标签和分支**:SVN插件支持创建和管理版本库的标签(快照)和分支,方便开发和维护不同的代码分支。这些功能对于软件迭代和发布管理至关重要。 7. **同步和检出**:Eclipse的“Synchronize View”可以显示本地...

    PHP基于Web的subversion用户管理系统(源代码+论文).zip

    Subversion提供了一种集中式的版本控制机制,允许团队成员在同一个项目上进行协作,记录每一次更改,以便于回溯、合并代码,并且提供冲突解决机制。Subversion仓库存储所有的项目文件和历史信息,用户通过客户端工具...

Global site tag (gtag.js) - Google Analytics