学习记录693@java使用svnkit实战之上传文件到svn

前提

我是在linux通过yum install subversion 安装的svn,访问的协议是svn协议,也就是url是svn://ip/…的方式,网上几乎所有的文章在用svnkit的时候都是http协议访问svn服务器的。我模仿后都是报错的。

代码

<dependency>
    <groupId>org.tmatesoft.svnkit</groupId>
    <artifactId>svnkit</artifactId>
    <version>1.10.1</version>
</dependency>
public class SvnKitUtils {

    public static void main(String[] args) throws SVNException {
        SVNRepositoryFactoryImpl.setup();
        SVNURL repositoryURL = null;
        repositoryURL= SVNURL.parseURIEncoded("svn://你的ip/test/123.docx");
        String name = "你的用户名";
        String password = "你的密码";
        ISVNOptions options = SVNWCUtil.createDefaultOptions(true);
        //实例化客户端管理类
        SVNClientManager svnClientManager = SVNClientManager.newInstance((DefaultSVNOptions) options, name, password);
        System.out.println(123);
        //要把此目录中的内容导入到版本库
        File impDir = new File("D:/upload/test.docx");
        //执行导入操作
        SVNCommitInfo commitInfo=svnClientManager.getCommitClient().doImport(impDir, repositoryURL, "importoperation!",null, false,false,SVNDepth.INFINITY);
        System.out.println(commitInfo.toString());
    }
}

以上操作就是把本地的test.docx文件上传到你svn仓库的test文件夹下面,并且重命名为123.docx,你执行代码后可以在本地的小乌龟执行更新操作,会发现文件真的增加了这个。

关于impDir(代表path)和repositoryURLh(代表dstURL)的不同形式,会产生不同的效果,比如:

如果path是一个目录,则该目录的内容将直接导入到由dstURL标识的目录中。请注意,目录路径本身不会导入,也就是说,path的基本名称不属于导入的一部分。
如果path是一个文件,那么dstURL的父级就是接收导入的目录。dstURL的基本名称是存储库中的文件名。在这种情况下,如果dstURL已经存在,则抛出SVNException。

另外注意svn://你的ip/test/123.docx,ip后面的目录如果不存在会自动创建。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 SVNKit 可以在 Java操作 SVN 代码仓库,包括拉取代码、提交代码、查看日志等等。下面是一个简单的示例代码,演示如何使用 SVNKit 拉取 SVN 代码: ```java import org.tmatesoft.svn.core.*; import org.tmatesoft.svn.core.auth.*; import org.tmatesoft.svn.core.wc.*; import java.io.File; public class SVNTest { public static void main(String[] args) { // SVN 用户名和密码 String username = "your_username"; String password = "your_password"; // SVN 代码仓库地址 String svnUrl = "svn://svnserver/svn/repo"; // 本地代码保存路径 String localPath = "/path/to/local/folder"; // 初始化 SVN 客户端管理器 SVNClientManager clientManager = SVNClientManager.newInstance(); // 设置 SVN 用户名和密码 ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(username, password); clientManager.setAuthenticationManager(authManager); // 创建本地代码保存路径 File localFolder = new File(localPath); if (!localFolder.exists()) { localFolder.mkdirs(); } try { // 拉取代码到本地 SVNURL svnUrlObj = SVNURL.parseURIDecoded(svnUrl); SVNUpdateClient updateClient = clientManager.getUpdateClient(); updateClient.setIgnoreExternals(false); updateClient.doCheckout(svnUrlObj, localFolder, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true); System.out.println("SVN code checkout complete."); } catch (SVNException e) { e.printStackTrace(); } } } ``` 需要注意的是,使用 SVNKit 操作 SVN 代码仓库需要导入相应的依赖包,具体可以参考 SVNKit 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值