在java软件开发中,通常会用svn管理项目代码,等到系统上线的时候,从项目开始到目前为止,需要从三个维度看我们改了哪些代码:
1、都改了哪些代码,我需要一个汇总
2、哪些模块(工程)改了哪些代码,每个模块的汇总
3、哪些人修改了哪些代码,每个人的汇总
如果你也需要从这三个维度来分析,你可以用用我的这个脚本。
首先,我提供的是bat脚本,需要先下载一个svn命令客户端工具:Apache Subversion command line tools,请前往:https://www.visualsvn.com/downloads/
下载下来的是一个压缩包,我解压到D:Apache-Subversion-1.9.5,系统环境变量Path追加D:Apache-Subversion-1.9.5bin,进入cmd模式,输入svn help,没有错误证明你的环境变量配置好了。
上脚本!脚本名:svn_log_export.bat。注意配置:开始时间和结束时间。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46@echo off ::开始时间 set sdate=2017-06-01T00:00:00 ::结束时间 set edate=2017-12-30T23:59:59 set pwd=%cd% ::遍历配置文件 ::逗号分隔,第1列为日志汇总文件名,第2列为svn目录,第3列为日志输出到的目录 for /f "delims=, tokens=1,2,3" %%a in (svn_log_export.list) do ( ::1、日志输出目录不存在创建,删除已导出日志 if not exist %%c ( md %%c ) del %%c*.log ::2、当前目录日志导出 cd %%b echo begin export... echo under %%b svn log -v -r{%sdate%}:{%edate%} > %%c%%a ::3、子目录日志导出 for /d %%i in (*) do ( cd %%b%%i if "%%b%%i" == "%%c" ( echo %%b%%i not exported. ) else ( svn log -v -r{%sdate%}:{%edate%} > %%c%%i.log echo %%i exported. ) ) ::4、当前目录分用户导出 cd %%b svn log -r{%sdate%}:{%edate%} > tmp.txt for /f "delims=| tokens=2" %%a in (tmp.txt) do ( echo %%a >> tmp2.txt ) for /f %%j in (tmp2.txt) do ( if not exist %%cuser-%%j.log ( svn log -v -r{%sdate%}:{%edate%} --search %%j > %%cuser-%%j.log echo user:%%j exported. ) ) del tmp.txt del tmp2.txt echo completed. ) cd %pwd%
某一个java系统:java_system,分了2子个工程:java_project1、java_project2,上传到svn目录:http://xxx.xxx.xxx.xxx/svn/java_system/branches/v1.0.9。
我们用svn命令将它checkout到本地目录:E:SvnDir,命令为:svn checkout http://xxx.xxx.xxx.xxx/svn/java_system/branches/v1.0.9。
上个配置文件,与svn_log_export.bat脚本同级目录,名称为:svn_log_export.list,具体配置如下:
1detail.log,E:SvnDirv1.0.9,E:SvnDirv1.0.9svnlog
双击执行svn_log_export.bat,输出日志在目录:svnlog
detail.log包含java_project1和java_project2所有的svn日志,java_project1.log和java_project2.log分别是工程的svn日志,user-bogege.log是用户:bogege的svn日志。
最后
以上就是大气紫菜最近收集整理的关于bat脚本:SVN日志分类的全部内容,更多相关bat脚本内容请搜索靠谱客的其他文章。
发表评论 取消回复