TortoiseSVNで自動でコミットするには

タスクスケジューラーで完全自動でコミットしたい場合。

TortoiseProcでは難しいようですね。

こんな感じでやってみました。

コマンドラインツールのインストール

TortoiseSVNのインストーラーで「command line client tools」をインストールします。

インストールすると、自動的にPATHが設定されるようです。コマンドプロンプトからsvnコマンドが利用可能になりました。

自動コミットのバッチファイル

次のようなバッチファイルを作ってみました。

@echo off
:start
setlocal ENABLEDELAYEDEXPANSION
set TD=%~dp0
cd /d %TD%

:SVN_UPDATE
svn update

:SVN_ADD_NOTUNDERCONTROL
FOR /F "usebackq delims=" %%i IN (`svn status`) DO (
  set LN="%%i"
  set FC=!LN:~1,1!
  set FN=!LN:~9,-1!
  IF "!FC!"=="?" (
    svn add "!FN!"
  )
)

:SVN_COMMIT
set MSG=""
svn commit -m %MSG%

:end

svn update後、svn statusでファイル一覧を取得、その中からバージョン管理されていないファイルをsvn addで追加し、終わったらsvn commitする流れです。

IF文を変更&追加することで、違った動作もできるかと思います。

?マークがバージョン管理されていないファイルですが。それ以外のマークについては、svn help statusの「First column」の欄を御覧下さい。

スポンサーリンク

フォローする

スポンサーリンク