svn如何生成diff文件
之前工作,都是手工做补丁包,需要编译文件,可SVN上只有源文件,因此比较费时费力。
于是,就想着用ant编译版本差异文件,并自动生成补丁。
而实现的关键就在于,如何导出版本差异文件
操作方法
- 01
批处理命令 @echo offsetlocal enabledelayedexpansionset config_file=build.propertiesset from_version=%1set to_version=%2rem 输入参数rem set /p from_version=请输入补丁升级前的版本:rem set /p to_version=请输入补丁升级后的版本:rem 读取配置文件for /f "tokens=1,2 delims==" %%i in (%config_file%) do ( set %%i=%%j)rem 删除临时文件set current_path=%~dp0del /f /s /q %current_path%%tempdir%rem 比较差异文件svn diff --summarize -r %from_version%:%to_version% %url% > file_list.txtrem 导出差异文件for /f "delims=" %%i in (file_list.txt) do ( call :export %%i)goto :EOF:exportset fullpath=%2set filename=%~nx2set "filepath=!fullpath:%filename%=!"set "filepath=!filepath:%url%=!"set "filepath=%filepath:/=\%"if not exist %tempdir%%filepath% mkdir %tempdir%%filepath%svn export -r %to_version% %fullpath% %tempdir%%filepath%%filename%
- 02
需要说明一下,Subversion命令无法直接导出版本差异文件。 简单介绍一下自己的思路,先用diff命令获得版本差异文件列表,再循环这个文件列表逐个导出文件。