首页  编辑  

自动每天pull项目git源码然后做code diff的敏捷小帮手

Tags: /计算机文档/脚本,批处理/   Date Created:
一个每天自动抽取增量代码差异,并打开显示用于团队代码审查的批处理:
需要安装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):
  1. @echo off & setlocal ENABLEEXTENSIONS
  2. for /f "delims=" %%a in ( 'PowerShell  "&{Get-Date (Get-Date).AddDays(-1) -uformat "%%Y-%%m-%%d"}"' ) do (
  3.   if not defined date1 set date1=%%a
  4. )
  5. echo %date1%
  6. svn di -r {%date1%} > code.diff
  7. code.diff