起因是运维的同事讨论如何获取SVN上文件的MD5:
之前确实在生产环境发现过生产介质损坏的情况,具体是SVN还是FTP导致问题不详。
初步搜索后得到两点信息:
- SVN 1.8以上使用的是SHA1,SVN 1.8以下使用的是MD5(https://stackoverflow.com/questions/7438588/subversion-checksum-algorithm);
- 很多人曾经尝试过使用svn info命令获取;
然而实测svn info只能获取本地仓库中文件的校验和:
此用的svn.exe为TortoiseSVN自带的,版本如下:
搜索SVN文档,发现其远程路径的输出也没有校验和:
该问题也有其他人遇到,但未得到解决:
继续搜索,找到一段代码:
这段代码是使用SVNKit实现的,没有用户名密码验证,增加验证调整后实测成功:
r.status的第二个参数可以直接加路径,就不用遍历了;不带第二个target参数就遍历。
完整代码如下:
参考资料:
1、http://subversion.1072662.n5.nabble.com/Get-checksum-performance-td2533.html
转载时请保留出处,违法转载追究到底:进城务工人员小梅 » 获取SVN服务端文件的md5/sha1