<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Visual SourceSafe </title><link>http://blogs.wankuma.com/ch3cooh/category/1142.aspx</link><description>Visual SourceSafe(VSS)はソースコードの管理ツールです。</description><managingEditor>CH3COOH(酢酸)</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>CH3COOH</dc:creator><title>[日常][Visual SourceSafe]ディリービルド</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/10/08/158456.aspx</link><pubDate>Wed, 08 Oct 2008 19:18:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/10/08/158456.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/158456.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/10/08/158456.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/158456.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/158456.aspx</trackback:ping><description>&lt;P&gt;以前の職場では一般的なPCでリビルドに2時間程掛かっており、&lt;BR&gt;VSSからの取得時間を含めると合計4時間程という環境でした。&lt;BR&gt;1ファイルの差分ビルドでさえ、15分は掛かっていました。&lt;BR&gt;(その後PCが改善されリビルド自体は1時間に短縮されました) 
&lt;P&gt;その為、深夜にディリービルドを走らせないと&lt;BR&gt;最新バージョンのソースコードでお仕事出来ませんでした。 
&lt;P&gt;今の職場ではビルドに時間が掛かる事は無いためか、&lt;BR&gt;ディリービルドの運用はやっていないみたいです。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=4&gt;&lt;STRONG&gt;話は繋がりませんが、&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;ユニットテストがしたいのでDaily Buildの雛形を引っ張り出してきました。&lt;/P&gt;
&lt;DIV class=wlWriterEditableSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:a172c93a-f321-41ea-a0ce-30cae8ae1ac9 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=sql name="code"&gt;@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%
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt; 
&lt;P&gt;これにユニットテストフェーズを追加したいんだけど、&lt;BR&gt;バッチってどうやって書くんだっけ&amp;#8230;&amp;#8230;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/158456.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[VSS][C#]C#を使ってVisual SourceSafeを操作しよう その2</title><link>http://blogs.wankuma.com/ch3cooh/archive/2007/03/29/69494.aspx</link><pubDate>Thu, 29 Mar 2007 22:47:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2007/03/29/69494.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/69494.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2007/03/29/69494.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/69494.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/69494.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://blogs.wankuma.com/ch3cooh/archive/2007/03/28/69243.aspx"&gt;http://blogs.wankuma.com/ch3cooh/archive/2007/03/28/69243.aspx&lt;/A&gt; のつづきです。&lt;/P&gt;
&lt;P&gt;C#からVSSを操作する手段は、ぱっと思いつく限りで3通りあります。&lt;BR&gt;(1)VSSをコマンドラインで呼び出し、別プロセスで動かす&lt;BR&gt;(2)バッチファイルを作成して、コマンドプロンプトを別プロセスで動かす&lt;BR&gt;(3)COMを利用してVSSを操作する&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;今回はお手軽に出来る(1)の方法を試してみました。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;private void&lt;/FONT&gt; GetLatestProject()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process myProcess = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; Process();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 環境変数を設定する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.EnvironmentVariables.Add(&lt;FONT color=#ff0000&gt;"SSDIR"&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;"&lt;/FONT&gt;&lt;A&gt;&lt;FONT color=#ff0000&gt;\\\\server\\$hoge&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt;"&lt;/FONT&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.EnvironmentVariables.Add(&lt;FONT color=#ff0000&gt;"SSUSER"&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;"user_id"&lt;/FONT&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.EnvironmentVariables.Add(&lt;FONT color=#ff0000&gt;"SSPWD"&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;"password"&lt;/FONT&gt;);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.FileName = &lt;FONT color=#ff0000&gt;"ss"&lt;/FONT&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.Arguments = &lt;FONT color=#ff0000&gt;"get \"$/Wankuma\" -R -I-Y -GL\"C:\\develop\\testvss\""&lt;/FONT&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 環境変数を使うのでfalseを設定する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.StartInfo.UseShellExecute = &lt;FONT color=#0000ff&gt;false&lt;/FONT&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // プロセスを開始して終了するまで待つ&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.Start();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myProcess.WaitForExit();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;これでVSSの任意のプロジェクトから最新のソースコードを落としてこれるはずです。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/69494.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[VSS][C#]C#を使ってVisual SourceSafeを操作しよう その1</title><link>http://blogs.wankuma.com/ch3cooh/archive/2007/03/28/69243.aspx</link><pubDate>Wed, 28 Mar 2007 01:06:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2007/03/28/69243.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/69243.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2007/03/28/69243.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/69243.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/69243.aspx</trackback:ping><description>今、ソースの管理にはVisual SourceSafe6.0(以下VSS)を使っています。&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;Perlで作ったスクリプトを使って、毎日夜間にバッチで&lt;BR&gt;VSSから最新のソースを取得～ビルド～中間ファイルごとソースを圧縮をしています。&lt;BR&gt;&lt;BR&gt;フルビルドでざっと1時間半は掛かるので、かなり生産性は上がっています。&lt;BR&gt;デイリービルドの利点はそれだけじゃないんですが、本記事では扱いません。&lt;BR&gt;詳しくは&lt;A href="http://japanese.joelonsoftware.com/Articles/DailyBuildsAreYourFriend.html"&gt;http://japanese.joelonsoftware.com/Articles/DailyBuildsAreYourFriend.html&lt;/A&gt;をご覧ください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ここからが本題です。&lt;/P&gt;
&lt;P&gt;Perlで作ったスクリプトを使っているので、Perlの判る人にしかメンテが出来ません。&lt;BR&gt;細かい要望に答えていくのも面倒くさいなぁということで、&lt;BR&gt;C#の勉強を兼ねてGUIを作ってしまおうと考えています。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;知っている人には「何を今更&amp;#8230;&amp;#8230;」を言われてしまうかもしれませんが、&lt;BR&gt;コマンドプロンプトからVSSを使って、最新のソースコードを取得する方法です。&lt;/P&gt;
&lt;P&gt;ここでは説明のため、次のような名前を使います。&lt;/P&gt;
&lt;P&gt;プロジェクト名は「&lt;FONT color=#ff0000&gt;Wankuma&lt;/FONT&gt;」、&lt;BR&gt;Srcsafe.iniのある場所を「&lt;A href="file://server/$hoge"&gt;&lt;FONT color=#ff0000&gt;\\server\$hoge&lt;/FONT&gt;&lt;/A&gt;」、&lt;BR&gt;ソースを保存するフォルダを「&lt;FONT color=#ff0000&gt;"C:\local_dir"&lt;/FONT&gt;」、&lt;BR&gt;ユーザーIDは「&lt;FONT color=#ff0000&gt;user_id&lt;/FONT&gt;」、&lt;BR&gt;パスワードを「&lt;FONT color=#ff0000&gt;password&lt;/FONT&gt;」とします。&lt;BR&gt;なお、「&lt;FONT color=#ff0000&gt;ss.exe&lt;/FONT&gt;」にはあらかじめPathを通していることにします。&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;下記のようなコマンドで取得することが出来ます。&lt;BR&gt;デイリービルドのバッチはこのコマンドで動かしています。&lt;/P&gt;
&lt;P&gt;c:\&amp;gt; SET SSDIR=&lt;FONT color=#ff0000&gt;"&lt;/FONT&gt;&lt;A href="file://server/$hoge"&gt;&lt;FONT color=#ff0000&gt;\\server\$hoge&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt;"&lt;/FONT&gt;&lt;BR&gt;c:\&amp;gt; ss get &lt;FONT color=#ff0000&gt;"$/Wankuma"&lt;/FONT&gt; -R -I-Y -Y&lt;FONT color=#ff0000&gt;user_id&lt;/FONT&gt;,&lt;FONT color=#ff0000&gt;password&lt;/FONT&gt;&amp;nbsp;-GL&lt;FONT color=#ff0000&gt;"C:\local_dir"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;簡単に説明します。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;環境変数「SSDIR」で設定されたデータベースの&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#000000&gt;「&lt;FONT color=#ff0000&gt;Wankuma&lt;/FONT&gt;」プロジェクトのソースを「get "Wankuma"」にて取得します。&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#000000&gt;
&lt;P&gt;「-R」は、指定したプロジェクト「&lt;FONT color=#ff0000&gt;Wankuma&lt;/FONT&gt;」のサブプロジェクトを再帰的に指定します。&lt;BR&gt;「-I-Y」は、聞かれた事に全てYesを返します。&lt;BR&gt;「-Y」は、ユーザーIDとパスワードを指定します。&lt;BR&gt;「-GL」は、ソースを落としてくる場所を指定します。&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;当初、環境変数を使わずに最新のソースを取得する方法を模索したのですが、&lt;BR&gt;どうしても環境変数「SSDIR」があるため、コマンドライン1行にまとまってくれませんでした。&lt;BR&gt;(ss.iniを触る方法以外にご存知の方いらっしゃいましたら教えてください)&lt;/P&gt;
&lt;P&gt;次回はこのコマンドを使って、C# からVSSを操作してみたいと思います。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;# それにしてもCSSの設定が難しい。&lt;BR&gt;# 記事を書くより特定の書式を触るのに時間が掛かってしまった。&lt;BR&gt;# 簡単にシンタックスハイライトに対応出来ないかな&amp;#8230;&amp;#8230;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/69243.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>