Visual SourceSafe 6.0dを使って、コマンドラインからファイルの取得などを行った際に、少々おかしな動きをすることがある。
ラベル指定してGetした場合の変な動き
ラベルを指定してGetすると、「破棄されているので再作成できません」という警告が大量にでる。確かに、過去のラベルに関しては、すでにそのファイルがごっそりと完全消去されていて復元できない項目がある。が、Getの際に指定したラベルは、その直前に付与したラベル。
VSSが内部でどのようなロジックを使ってラベルに該当するファイルを取得してきているのかは判らないが、たぶん過去のラベル等も含めて、履歴を順に追っているのだろう。しかし、これではどれが本当にみるべきエラーか全く判らない。
作業フォルダの設定についての挙動
通常、作業フォルダを根本から変更すると、そのサブプロジェクト*1の作業フォルダも連動して変更される。しかし、サブプロジェクトごとに個別の設定を行うと、通常はそちらが優先される。
で、それを知らない開発メンバーが、個別の設定をやってしまっていた。ただし、個別とはいえ、全部同じ根本を持った、統一されたフォルダ構成にはなっていたという状態。
その状態でGetコマンドで、念を押してオプション「-GF」をつけてプロジェクトの設定を生かすという方針で最新ソースを取得すると、なぜか途中から、コマンドを呼び出しているバッチファイルのフォルダ、すなわち「作業中フォルダ」にソースが取得されてしまう。
原因はよく分からないが、各プロジェクトで個別に設定されていた作業フォルダの設定を全部消し、根本部分だけの設定にし、VSSのソース構成に沿った作業フォルダが自然に設定されている状態にしたところ、期待通りの動きをするようになった。
*1:プロジェクト: VSSでは、ソースのツリー構造の各ノードをプロジェクトと呼ぶ。