1. 程式人生 > >windows環境自動獲取SVN倉庫當前版本

windows環境自動獲取SVN倉庫當前版本

我們可以使用SVN info命令,在當前倉庫檢視SVN Revision,並通過抓取Revision關鍵字,之後生成一個檔案,讓我們的軟體自動引用。

如果是在dos下輸入SVN info命令,一般會提示“svn不是內部或外部命令”。因為windows下安裝SVN,預設不安裝svn commond line。請現重灌SVN選擇安裝svn commond line,並且新增bin目錄到windows環境變數。

之後就可以在dos下使用SVN info 命令了。此時我們可以直接bat指令碼中完成一系列工作:

@echo off
set src_dir=%~dp0
for /f "delims=" %%i in
('svn info ^| findstr "Revision"') do set rev=%%i set rev=%rev:~10% echo #define SVN_REVISION %rev% > "%src_dir%"svnversion.h

執行這個指令碼會在指令碼所在目錄生成一個svn revision版本號的標頭檔案svnversion.h,我們軟體中引用這個標頭檔案就可以得到svn修訂版本了。

如果是keil編譯軟體,可以在project->option for target->User中,設定編譯軟體之前執行這個指令碼。同時,軟體記得引用svnversion.h。

還有一個方法,可以利用svn鉤子來自動更新這個標頭檔案。在SVN設定介面找到Hook scripts頁。分別新增一個Post-commit Hook和Post-update Hook並指定執行這個指令碼,即可在每次提交或更新程式碼後自動更新svnversion.h。