.NET TIPS

Visual SourceSafeでバージョン情報をソース・コードに埋め込むには?

デジタルアドバンテージ 岸本 真二郎
2008/07/10

 Visual Studioを使った開発では、ソース・コードのバージョン管理にVisual SourceSafe(以下、VSS)を用いるケースは少なくない。

 VSSでは、「キーワード拡張(キーワード展開)」を利用することで、VSSで管理されている利用者、最終更新日付などのバージョン情報をソース・コードに付加できる。以下は、この機能を利用してソース・コードに埋め込まれたバージョン情報である。

// $Revision: 2 $
// $Author: Shinj-ki $
// $Date: 08/07/01 14:37 $
// $Modtime: 08/07/01 14:37 $
// $Archive: /SSLibrary1.root/SSLibrary1/Export/Program.cs $
' $Revision: 4 $
' $Author: Shinj-ki $
' $Date: 08/07/01 14:35 $
' $Modtime: 08/07/01 14:35 $
' $Archive: /SSLibrary1.root/SSLibrary1/VbExport/Module1.vb $
ソース・コードに埋め込まれたバージョン情報の例(上:C#、下:VB)
VSSの用意するキーワードを記述しておけば、その右側にVSSの管理する情報が自動的に埋め込まれる。

 これらの情報は、ソース・コードをチェックインする際に自動的に更新される。VSSのキーワード拡張機能で利用できるキーワードを次に示す。

キーワード 機能
$Archive: $ Visual SourceSafeのアーカイブ・ファイルの場所
$Author: $ このファイルを最後に変更したユーザー
$Date: $ 最後にチェックインされた日付と時刻
$Header: $ フォームのヘッダ(Logfile、Revision、Date、Author)を表示
$History: $ Visual SourceSafe形式でのファイルの履歴
$JustDate: $ 日付のみ(時刻は含まれない)
$Log: $ RCS形式でのファイル履歴
$Logfile: $ Archiveキーワードと同じ
$Modtime: $ 最後に変更された日付と時刻
$Revision: $ Visual SourceSafeのバージョン番号
$Workfile: $ ファイル名
$NoKeywords: $ このキーワードに続くすべてのキーワードについて、キーワード展開を行わないことを指定
VSSで使用できるキーワード
キーワードによっては複数行に展開されるものもある。

 これらのキーワードをソース・コードにセットしておけば、ソース・コードを見るだけで、ファイルのリビジョンや最後にチェックインしたユーザーが誰であるかなどが確認できる。

 冒頭の例は、最初に次のようなコードを記述しておいた場合のものだ。

// $Revision: $
// $Author:  $
// $Date: $
// $Modtime: $
// $Archive: $
' $Revision: $
' $Author: $
' $Date: $
' $Modtime: $
' $Archive: $
最初に記述しておいたコード内容(上:C#、下:VB)

 このような記述を行った後にソース・ファイルをチェックインすると、キーワードと“$”に挟まれた部分に、キーワードに該当する内容がVSSによって埋め込まれる。以降はチェックインするたびに、自動的にこれらの内容は更新されていく。

 なお、このキーワード拡張を行うには、VSSのオプション設定を若干修正する必要がある。以降はこれについて説明する。

キーワード拡張を行うファイルの指定

 まず、C#やVBのソース・コードでキーワード拡張が行われるように、ファイルの種類を登録しなければならない。

 管理ツール(Visual SourceSafeアドミニストレータ)を起動して、メニューから[ツール]−[オプション]を選択して、オプション設定のダイアログを開く。ここで[全般]タブの[キーワードを展開するファイルの種類]に、キーワードを展開したいファイルの種類を指定する。

 ここには、「*.cs,*.vb」という具合に、通常は拡張子でファイルの種類を指定しておく。複数の種類のファイルを指定する場合にはカンマで区切って記述する。

コメントの記述方法の指定

 以上でソース・コード上に記述したキーワードが展開されるようになるのだが、これに加えて、ファイルの種類ごとに、異なる形式のコメントを生成できるようにしておく必要がある。

 これはキーワードが複数行に展開された場合に対処するものだ。例えばC#であれば展開される行(2行目以降)が「//」で始まり、VBなら「'」で始まらないと、その行がコメントとして扱われず、コンパイル・エラーになってしまう。そのため、ファイルの拡張子ごとに、コメントの生成ルールを指示しておく。

 この設定は管理ツールでは行えず、VSSのデータを格納するフォルダに作成されている「srcsafe.ini」を直接修正する必要がある。具体的には、srcsafe.iniをテキスト・エディタで開き、次の行を追加する。これにより、VSSが展開する行の先頭には、指定したコメント記号が付加されるようになる。

[Keyword Comments]
*.cs  = "// "
*.vb = "'"
使用されるコメント記号の指定(srcsafe.ini)

 ちなみに、前述のキーワード拡張を行うファイルの指定も、実はこのsrcsafe.iniに書き込まれており、管理ツールを用いなくても、srcsafe.ini内の「Keyword_Masks」の行を以下のように修正すればいい。

Keyword_Masks = *.cpp,*.h,*.cs,*.php,*.vb
キーワード拡張を行うファイルの指定(srcsafe.ini)
この例では5種類のファイルに対してキーワード拡張を行うように指定している。

 これらの変更を行った後、再度VSSにアクセスすれば、設定内容が有効になっている。ただし、このキーワード拡張を有効にするとVSSがキーワードのスキャンを行うため、「チェックイン」や「ファイルの追加」で余分に時間がかかるという点には注意が必要である。End of Article

カテゴリ:開発環境&ツール 処理対象:Visual SourceSafe

この記事と関連性の高い別の.NET TIPS
[ASP.NET]ページから生成されたソース・コードを見るには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間