酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Visual SourceSafeから最新のソースコードを取得してデイリービルドする

以前の職場では、プロジェクトの規模が超大規模ということもあり、一般的なPCでリビルドするのに2時間も掛かってしまうほどでした。通信速度の遅さも相まって、VSSからの取得時間を含めると合計4時間程という環境でした。

1ファイルの差分ビルドでさえ15分は掛かっていました(その後PCが改善されリビルド自体は1時間に短縮されました)。

その為、深夜にディリービルドを走らせておかないと、最新バージョンのソースコードでお仕事するまでに、9時出社で実機に転送できるようになるのが13時というチープな状況でした。

現在の職場では、最新マシンにリプレースしたことによって、ビルドに時間が掛かる事がなくなったため、ディリービルドの運用はやらなくなりました。

@echo off 
REM ##################################
REM ## 
REM ## Daily Build Batch
REM ## 
REM ##################################

REM #################
REM ## 設定などなど
REM #################

REM # ビルドしたり開発したりするディレクトリ
SET WORK_DIR=d:\develop\workdir

REM # Visual Source Safe設定
SET VSS_DIR="C:\Program Files\Microsoft Visual Studio\VSS\win32"

SET SSDIR=\\hoge_server\vss
SET SSUSER=ch3cooh_id
SET SSPWD=ch3cooh_password
SET PROJECT=$/project

REM # Visual Studio設定
SET VISUALSTUDIO_DIR="C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE"

REM #################
REM ## 前処理
REM #################
SET orgPath=%path%
SET path=%path%;%VSS_DIR%;%VISUALSTUDIO_DIR%

SET _DATE_=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET TIME_REPLACE=%time: =0%
SET _TIME_=%TIME_REPLACE:~0,2%%TIME_REPLACE:~3,2%
SET DEST_DIR=%WORK_DIR%_%_DATE_%_%_TIME_%

REM #################
REM ## コピーフェーズ
REM #################

echo コピーします...
echo 送り元: %WORK_DIR%\
echo 送り先: %DEST_DIR%\

mkdir %DEST_DIR%\
xcopy %WORK_DIR% %DEST_DIR% /S /Q /Y

REM #################
REM ## 削除フェーズ
REM #################

echo 削除します...
cd %WORK_DIR%
del /F /S /Q %WORK_DIR%\*.*

REM #################
REM ## VSS取得フェーズ
REM #################

echo VSSから最新の環境を取得します...
echo 取得先: %WORK_DIR%\

ss get "%PROJECT%" -R -I-Y -GL"%WORK_DIR%"

REM #################
REM ## ビルドフェーズ
REM #################

echo projectのビルド中...
devenv.exe %WORK_DIR%\project.sln /build Debug /out %WORK_DIR%\project.log

REM #################
REM ## 後処理
REM #################
SET path=%orgPath%