2023年7月13日发(作者:)
命令⾏导出SVN版本差异⽂件 之前⼯作,都是⼿⼯做补丁包,需要编译⽂件,可SVN上只有源⽂件,因此⽐较费时费⼒。 于是,就想着⽤ant编译版本差异⽂件,并⾃动⽣成补丁。 ⽽实现的关键就在于,如何导出版本差异⽂件。经过⼀些尝试后,有如下两种可⾏的⽅式: 1. 如果是windows系统,可以通过TortoiseSVN⼿⼯导出差异⽂件,具体操作可以参考: 2. 命令⾏实现,这个是我做的补丁⼯具的重点。步骤如下: (1) 安装Subversion,SVN命令。 (2) 在配置⽂件ties中需要配置两个参数,如下:# svn urlurl=....# 存放导出⽂件的临时⽬录tempdir=temp ⽐较懒,在⽤TortoiseSVN登陆SVN时,记住了⽤户名密码,命令⾏这⾥也就不需要再配置以及登陆。 (3) 命令⾏实现。只写了windows批处理。有需要的话可以根据系统改写⼀下。 需要说明⼀下,Subversion命令⽆法直接导出版本差异⽂件。 简单介绍⼀下⾃⼰的思路,先⽤diff命令获得版本差异⽂件列表,再循环这个⽂件列表逐个导出⽂件。@echo offsetlocal enabledelayedexpansionset config_file=tiesset 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_ 导出差异⽂件for /f "delims=" %%i in (file_) 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% 如有错误或疏漏,还请⼤家不吝赐教,拜谢~
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689199142a219875.html
评论列表(0条)