使用Matlab实现日常solution更新后的编译并在SVN中追溯error来源作者

本文介绍了一个结合SVN和MATLAB实现的自动化软件编译流程,包括自动拉取版本库更新、错误处理及回滚机制,并通过电子邮件通知开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要目标:
(1)每天将SVN中的更新load到本地,若无更新则不重新进行编译。
(2)若该solution发生更新,则update所有文件后进行整体编译。
(3)在编译时如果出现错误就进行错误溯源,找到原作者并发送错误报告。

使用的主要SVN命令行:
SVN更新:svn update; SVN日志查看:svn log;回滚:svn revert;
使用工具:MATLAB ;tortoise SVN;MSbuild

实现:
首先是本地文件的更新,MATLAB 调用命令行工具

[status,cmdout]=system('svn update');
disp(cmdout);

然后对代码进行编译,使用下面两句命令行语句

call  "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\msbuild.exe" taichi64.sln /t:"Clean;Build" /p:Configuration=Release -verbosity:quiet -maxcpucount:10 -flp1:logfile=errors.txt;errorsonly -flp2:logfile=warnings.txt;warningsonly'

根据命令行语句的输出,也就是warning和error文件存在与否来判定是否要执行错误报告的发送和错误的溯源。当存在错误时,查找最新版本的更新作者,后回滚至上一版本,使用命令行。注意:在进行回滚时还需要对回滚的结果进行提交。

[status,rever_info]=system('svn revert');
system('svn commit -m "revert to older version"');

回滚后查看使用MATLAB的sendmail函数发送邮件给作者。此处我使用的是自己利用sendmail写的一个函数。

send_rebuil_report('liuwenwen@ankenj.com','errors and warnings from rebuilt',[cmdout,'Due to the errors, file have been reverted'],{'errors.txt','warnings.txt'});
delete('errors.txt','warnings.txt');%%将错误报告删除以防影响后续文件存在状态的判断。

(若回滚后依然存在错误则继续执行回滚操作,至没有错误的版本)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值