一个每天自动抽取增量代码差异,并打开显示用于团队代码审查的批处理:
需要安装git工具,git最好用ssh key可以自动登录。
把下面的代码,保存一个codediff.bat批处理,放在项目目录下,就可以自动codediff了。
git
在源码库目录运行下面指令,即可输出代码差异
git diff @{1.days.ago} > code.diff
下面的批处理可以连同提交时的注释也一起输出,如果代码包含前端和后端,并且放在同一个目录下,可以支持多个源码库目录一起处理:
@echo off
set days=%1
if "$%days%$"=="$" (
set days=1
echo 自动更新和收集 Code diff 相关代码并打开 diff 文件
echo 用法:
echo codediff [天数]
echo 天数:检查多少天前的代码,默认为检查前一天的代码
echo 例如:
echo codediff 1 : 检查 1 天前的代码,周二到周五使用
echo codediff 3 : 检查 3 天前的代码,周一使用
echo.
echo -----------------
)
%~d0 > nul
cd %~dp0 > nul
set cdf=%~dp0\codediff.diff
echo. > %cdf%
echo 开始获取 %days% 天前的代码差异...
for /d %%i in (*) do (
echo 更新代码:%%i...
cd %%i
cmd /c git pull
git.exe whatchanged --since="%days% days ago" -p >> %cdf%
cd ..
)
start %cdf%
SVN
运行指令
svn di -r {2023-02-13} > code.diff
其中的日期可以更改为对应的前一天的日期,如果要自动化,需要使用脚本。以下批处理脚本,自动拉取前一天代码差异批处理如下(codediff.bat):
- @echo off & setlocal ENABLEEXTENSIONS
- for /f "delims=" %%a in ( 'PowerShell "&{Get-Date (Get-Date).AddDays(-1) -uformat "%%Y-%%m-%%d"}"' ) do (
- if not defined date1 set date1=%%a
- )
- echo %date1%
- svn di -r {%date1%} > code.diff
- code.diff