`

svn编程

阅读更多
API文档:
http://svnkit.com/javadoc/org/tmatesoft/svn/core/package-summary.html

例子路径:
https://wiki.svnkit.com/Managing_A_Working_Copy

别人写的例子:
http://eatsalt.blog.163.com/blog/static/879402662009102402949523/

public class DefaultSVNResourceGenerator extends AbstractLogEnabled implements SVNResourceGenerator {
    private SVNClientManager svnClientManager;
   
    private SVNURL           repositoryURL;
   
    private void init(String svnUrl, String svnUser, String svnPassword) throws SVNException {
        DAVRepositoryFactory.setup();
        repositoryURL = SVNURL.parseURIEncoded(svnUrl);

        ISVNOptions options = SVNWCUtil.createDefaultOptions(true);

        ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(
            svnUser, svnPassword);

        svnClientManager = SVNClientManager.newInstance(options, authManager);

    }
    public boolean resourceCheckout(String svnUrl, String projectPath, String svnUser,
                                    String svnPassword) throws Exception {
        File projectDir = new File(projectPath);
        if (projectDir.exists())
            deleteDir(projectDir);
       
        if (!projectDir.exists())
            projectDir.mkdirs();
       
        init(svnUrl, svnUser, svnPassword);
       
        SVNUpdateClient updateClient = svnClientManager.getUpdateClient();
        updateClient.setIgnoreExternals(false);

        updateClient.doCheckout(repositoryURL, projectDir, SVNRevision.HEAD, SVNRevision.HEAD,
            SVNDepth.INFINITY, true);
        deleteSvnDir(projectDir);
        return true;
    }
   
    public void deleteSvnDir(File file) {
        if (file.isDirectory()) {
            File svnDir = new File(file, ".svn");
            if (svnDir.exists() && svnDir.isDirectory())
                deleteDir(svnDir);
            File[] fileArray = file.listFiles();
            for (File f : fileArray)
                deleteSvnDir(f);
        }
    }

    public void deleteDir(File file) {
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File f : files)
                deleteDir(f);
        }
        file.delete();
    }
}
分享到:
评论

相关推荐

    svnkit 1.8.11- javadoc(svn java编程文档)

    svnkit 1.8.11- javadoc(svn java编程文档)

    svn 64 用于eclipse

    Eclipse是一款功能强大的集成开发环境(IDE),支持多种编程语言,如Java、Python等。在Eclipse中集成SVN客户端插件,可以方便地进行版本控制操作,如代码的提交、更新、合并等。 标题"svn 64 用于eclipse"指的是将...

    svn1.1.9集合eclipse插件包

    Eclipse是一款强大的集成开发环境(IDE),支持多种编程语言,如Java、C++等。将SVN与Eclipse集成,可以方便开发者在Eclipse内直接进行版本控制操作,如提交、更新、合并等。 "svn1.1.9集合eclipse插件包"是指一个...

    svn服务端、客户端、eclipse svn插件

    Eclipse是一款流行的开源集成开发环境(IDE),支持多种编程语言。为了在Eclipse中使用SVN,需要安装一个名为“Subversive”或“Subclipse”的插件。 1. **安装Subversive或Subclipse**:通过Eclipse的内置软件更新...

    最新版本的AnkhSVN中文版ankhsvn.zip

    方便你在VS编程时添加提交更新文件,而无需在命令行模式手工提交, 作一一款开源的项目,方便你随时对项目进行开发,摆脱开发中的时间限制, 让修改冲突不再令人头疼。 VS2015 请安装AnkhSvn-2.5.12582.msi 亲测...

    SVN目录下.svn文件批量删除

    "SVN_Deleter"是一款专门设计用来批量删除指定目录下的`.svn`目录的工具,它由PHP编程语言编写。PHP是一种服务器端脚本语言,通常用于Web开发,但也可以用作命令行工具,这使得它适合于执行这种批处理任务。使用SVN_...

    svn connector

    Eclipse是一款强大的开源IDE,广泛应用于Java、Python、C++等编程语言的开发,而SVN则是一种分布式版本控制系统,用于跟踪和管理项目文件的修改历史,便于团队协作和代码版本管理。 在Eclipse中安装SVN Connector是...

    Svn相关学习资料以及视频

    SVN,全称为Subversion,是一款广泛应用于软件开发领域的版本控制系统。它允许团队成员协同工作,跟踪文件和目录的变化,并管理项目的多个版本。本压缩包提供了丰富的 SVN 学习资源,包括安装教程、文档和视频,旨在...

    svn操作手册 svn版本控制

    本文将深入探讨SVN的基本概念、核心功能以及实用的操作指南,旨在帮助编程爱好者和专业开发者全面掌握SVN的使用技巧,提升团队协作效率和项目管理水平。 #### 一、SVN基本概念 **1.1 版本库(Repository)** SVN的...

    SVN版本控制工具,SVN集成Eclipse

    Eclipse是一款强大的开源集成开发环境(IDE),支持多种编程语言。为了在Eclipse中利用SVN进行版本控制,需要进行集成安装。 首先,让我们详细了解SVN的基本概念。SVN的核心是仓库(Repository),它是存储项目文件...

    SVNMerge源代码SVNMerge源代码

    在这个特定的上下文中,"SVNMerge源代码"指的是该工具的原始编程语言代码,可能是用C、C++或者Python等语言编写的,它允许开发者深入理解工具的工作原理并可能进行定制或扩展。 TortoiseMerge是与SVN协同使用的另一...

    SVN-site-1.8.22.rar

    Eclipse是一款功能强大的集成开发环境,支持多种编程语言。为了在Eclipse中使用SVN,我们需要安装对应的插件。"SVN-site-1.8.22" 提供了这样的功能,它包含了所有必要的组件,允许用户在Eclipse内无缝地集成SVN工具...

    svn+eclipseSvn插件.rar

    Eclipse 是一个流行的开源集成开发环境(IDE),它支持多种编程语言。将 SVN 集成到 Eclipse 中,可以方便地在 Eclipse 内进行版本控制操作,如提交、更新、查看历史等。"svn+eclipseSvn插件.rar" 文件很可能是包含...

    svn插件和myeclipse10加入svn插件说明

    在编程领域,特别是Java开发环境中,MyEclipse是一款强大的集成开发环境(IDE),它支持多种开发工具和框架,包括对SVN的支持。在MyEclipse 10中加入SVN插件,可以让开发者直接在IDE内进行版本控制操作,如提交、...

    svn服务器搭建及自动邮件通知的实现

    这个过程需要一定的系统管理和编程知识,但遵循指南并逐步操作,大部分开发者都能顺利完成。提供的"几种SVN工具的安装使用.txt"、"简单方法实现SVN邮件通知.txt"和"windows下搭建SVN服务器.txt"文档应该包含了更详细...

    SVN版本控制清除工具

    - 你可以使用Python、批处理脚本或者其他编程语言编写简单的脚本来遍历目录并删除.SVN子目录。例如,在Python中,可以使用os和os.path模块来实现: ```python import os def remove_svn_folders(directory): ...

    eclise 的svn插件

    Eclipse 是一款强大的集成开发环境(IDE),广泛用于Java、Python等编程语言的开发。而SVN(Subversion)是一种版本控制系统,它帮助开发者管理代码的版本,追踪修改历史,协同多人合作。在Eclipse中集成SVN插件,...

    SVN&SI&其它编程工具

    我喜欢的一系列编程工具,经过精心的整理,提供非常方便的用户使用接口。

    SVN安装文件 免安装

    Eclipse是一款强大的开源集成开发环境(IDE),支持多种编程语言。为了在Eclipse中使用SVN,开发者通常需要安装一个名为Subversive或Subclipse的Eclipse插件。这些插件集成了SVN的功能,使得开发者可以直接在IDE内部...

Global site tag (gtag.js) - Google Analytics