您的位置:首页 > 其它

获取 SVN 一段时间内文件改动列表

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

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

例如

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

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

其实待发布文件列表就是 SVN 的操作记录, 可以通过 svn log 得到, 但这个日志没有排除重复, 会详细的列出每个文件的多次操作记录, 太累赘了, 还需要我们逐个进行整理. 我需要的是一个列表明确地告诉我在此次版本期间, 我们新增, 修改, 删除了哪些文件就好了.

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

命令格式如下:

svn diff -r REVNO:HEAD --summarize
http://svn-url

例如

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

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

可以简写成这样

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

或者你只知道需要检查版本的日期, 这就相当于检查从 2015-05-06(上次封版日期) 开始到目前(此次发版日期)所有的文件改动

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

或者日期区间

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

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

参考

------------------------------------

需要先安装 svn 命令行工具

Apache Subversion command line tools

What
svn command would list all the files modified on a branch?

Get
files changed for a set of revisions

SVN
Tip: Get List of Files Changed Between Revisions

Checking out an
older revision from SVN

Google get svn all change file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: