svn导出文件进行比较
之前有介绍svn log 的命令,即可导出版本A~B之间所有的修改动作,然后复制出相应的文件(中间有一个算法去处理每一个动作,然后得到最终需要导出的文件列表,svn常用动作有:Modified、Added、Deleted、Replacing、Conflicted、Merged、Existed等)。
SVN客户端的版本比较,我仔细研究了一下它的实现:根据选择的版本号,下载该版本号以及当前本地版本号的二个资源文件,存放于一个临时文件夹中,然后调用用TortoiseMerge,传入二个文件的路径,即可进行比较了。
svn diff 命令仅仅是在DOS窗口里输出,没有GUI界面那么直观,TortoiseMerge工具弥补了这一点,当然还有其它例如:WinMerge也有类似的功能。
关于文件的导出,目前我尝试了二种方案:
1、svn cat (输出指定的文件)
2、svn export (导出指定的文件)
最新的版本直接使用HEAD替代即可,用法:
>svn cat -r HEAD https://xx.xml >d:\x.xml
>svn export -r verNum https://xx.xml d:\xx.xml (svn export –r num url path)
导出功能实现了,比较工具就很容易了
>TortoiseMerge /base:"D:\x.xml" /theirs:"d:\xx.xml"
【参考】: