svn auto commit

 
SVN可以使用svn update path的方式將服務器上最新的版本同步到本地,
也可以使用svn commit path的方式將本地的版本同步到服務器上,但是commit僅支持已經版本控制過的文件,
對於新加的目錄或文件並不支持,所以爲了能夠實現該功能,花了半天時間寫了個bat來處理,
實現原理是先查找新添加的文件,然後使用svn add path添加入版本庫,而後再svn commit。
貼出供大家參考:
svn_commit.bat
------------------------------------------------------
@echo off
REM 設置SVN目錄
set SVN_DB="D:\SHARE\DOCUMENT\SVN"

REM 同步
svn update %SVN_DB%

REM 顯示目錄下未commit各文件狀態到臨時文件,每個狀態一行
svn status %SVN_DB% > c:\svn.txt

REM 解析臨時文件,對各狀態進行解析,新建的目錄進行add
for /f "delims=" %%i in (c:\svn.txt) do (
call svn_commit_one.bat "%%i"
)

REM 統一提交
svn commit %SVN_DB% -m "服務器自動處理"



svn_commit_one.bat
---------------------------------------------------
REM 讀取參數
SET SVN_PARA=%1

REM 讀取第一位狀態
SET SVN_TYPE=%SVN_PARA~1,1%

REM 讀取後續狀態的文件名
SET SVN_FILE="%SVN_PARA~9%

REM 如果狀態是?,則目錄是未綁定狀態,先添加
IF "%SVN_TYPE%" == "?" (svn add %SVN_FILE%)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章