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"

 

【参考】:

svn export -导出

svn status

TortoiseMerge-1.6.6-en.pdf

posted @ 2014-01-17 18:09  meteoric_cry  阅读(5006)  评论(0编辑  收藏  举报