Web产品(例如网站, WebApp)在做新版本发布时, 一般我们需要提交一个待发布文件的列表, 增量更新到生产环境的服务器上, 没有做整体替换.

这个待发布文件列表其实就是一个所有改动文件的列表, 列出了新增, 修改, 删除了哪些文件, 主要是辅助发布的过程, 确保没有遗漏文件造成版本发布失败.

例如

5月6号发布版本, 从上次封版到这次发版中间到底改动了哪些文件呢?

这是个头痛的问题, 必须确保无一遗漏才能万无一失!

其实待发布文件列表就是 SVN 的操作记录, 可以通过 svn log 得到, 但这个日志没有排除重复, 会详细的列出每个文件的多次操作记录, 太累赘了,

还需要我们逐个进行整理. 我需要的是一个列表明确地告诉我在此次版本期间, 我们新增, 修改, 删除了哪些文件就好了.

在困惑了一段日子后, 终于有机会来寻找解决方法了, 其实通过 svn 命令行(TortoiseSVN不行, 需要先安装 svn 命令行工具)是可以获得这个列表的.

命令格式如下:

1
    svn diff -r REVNO:HEAD --summarize <http://svn-url>  

例如
想检查从 724版本 开始到目前所有改动文件的列表

1
    svn diff -r 724:HEAD --summarize <https://192.168.198.2/svn >> changedfiles.txt  

可以简写成这样
1
    svn diff -r 724 --summarize <https://192.168.198.2/svn >> changedfiles.txt  

或者你只知道需要检查版本的日期, 这就相当于检查从 2015-05-06(上次封版日期)

开始到目前(此次发版日期)所有的文件改动

1
    svn diff -r {2015-05-06} --summarize <https://192.168.198.2/svn >> changedfiles.txt  

或者日期区间

1
    svn diff -r {2015-05-04}:{2015-05-05} --summarize <https://192.168.198.2/svn >> changedfiles.txt

这样我们就能够实现自动化发布了…

————————————————

原文链接:https://blog.csdn.net/qq_15766181/article/details/80116240