svn获取服务器文件路径,获取SVN服务端文件的md5/sha1

文章讲述了在生产环境中遇到SVN文件校验和需求,探讨了SVN1.8及以上版本使用SHA1,而SVN1.8以下使用MD5的情况。通过搜索和实践,找到了使用SVNKit实现远程路径文件MD5的方法,解决了无法直接从SVN获取远程文件校验和的问题。提供的代码示例展示了如何在TortoiseSVN中获取SVN文件的MD5值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因是运维的同事讨论如何获取SVN上文件的MD5:

07be142f81f64e3a5908326e781ea04e.png

之前确实在生产环境发现过生产介质损坏的情况,具体是SVN还是FTP导致问题不详。

初步搜索后得到两点信息:

SVN 1.8以上使用的是SHA1,SVN 1.8以下使用的是MD5(https://stackoverflow.com/questions/7438588/subversion-checksum-algorithm);

很多人曾经尝试过使用svn info命令获取;

然而实测svn info只能获取本地仓库中文件的校验和:

f62aae872d842d5359f54851060d6296.png

此用的svn.exe为TortoiseSVN自带的,版本如下:

9c59ed8c5c1810d620cf22b6698cbee1.png

搜索SVN文档,发现其远程路径的输出也没有校验和:

f74d2234b09ef1f34e0e812a6033baf1.png

该问题也有其他人遇到,但未得到解决:

b279a4ed75bc25ce743023db704e2091.png

cc5afba74e6005b4a2376beed916947b.png

继续搜索,找到一段代码:

0ef19b969e6ee0503d6e901b9f5cd750.png

这段代码是使用SVNKit实现的,没有用户名密码验证,增加验证调整后实测成功:

e3b4df55f604bdc0119aa342392a20dc.png

r.status的第二个参数可以直接加路径,就不用遍历了;不带第二个target参数就遍历。

完整代码如下:

参考资料:

1、http://subversion.1072662.n5.nabble.com/Get-checksum-performance-td2533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值