チュートリアル : コマンド ラインからの Team Foundation バージョン管理の操作
更新 : 2007 年 11 月
このチュートリアルでは、Visual Studio Team System Team Foundation Server のコマンド ライン クライアントである tf.exe を使用してバージョン管理操作を実行する方法について説明します。
このチュートリアルでは、次のタスクを行います。
バージョン管理サーバーにあるファイルの個人用コピーの保存場所となるワークスペースを作成し、バージョン管理サーバーからソースのコピーを取得する。
サーバーにファイルを追加し、そのファイルをサーバーからチェックアウトしてワークスペースで編集する。
保留中の変更をチェックインし、変更セットを作成する。
特定の変更セットが作成された時点のサーバーからソースを取得することにより、ワークスペースを特定の時点の状態に戻す。
前提条件
Team Foundation Server への接続を確立でき、適切なアクセス許可がある場合は、コマンド プロンプト、バッチ ファイル、またはスクリプト ファイルでバージョン管理コマンドを実行できます。これを行うには、Visual Studio 2008 コマンド プロンプト ユーティリティを使用するか、次の例で説明する vsvars32 を使用して、現在のコマンド プロンプトで複数の環境変数を設定する必要があります。チーム プロジェクトに参加する方法の詳細については、「チュートリアル : チーム プロジェクトへの参加」を参照してください。
Visual Studio 2008 のコマンド プロンプトを開くには
- [スタート] ボタンをクリックし、[すべてのプログラム] をクリックします。次に [Microsoft Visual Studio 2008] をポイントし、[Visual Studio Tools] をポイントして、[Visual Studio 2008 コマンド プロンプト] をクリックします。
または、Visual Studio のインストール パス (通常は DriveLetter:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools) にある vsvars32 を実行することもできます。
必要なアクセス許可
このチュートリアルを行うには、[CreateWorkspace]、[チェックイン]、および [PendChange] のアクセス許可が必要です。
ワークスペースの作成
バージョン管理の操作を開始するには、ワークスペースを確立する必要があります。ワークスペースとは、サーバー上のファイルとフォルダのローカル コピーです。バージョン管理された項目の追加、編集、削除、移動、名前の変更、または他の方法による変更を行うと、変更はワークスペースに分離されるため、変更のビルドやテストを安全に行うことができます。チェックインを実行すると、これらの変更はサーバーにコミットされ、ワークスペースの外部で使用できるようになります。
ワークスペースは、一連のマッピングで構成されます。各マッピングによって、サーバー内のフォルダとディスク上のローカル フォルダが関連付けられます。サーバーからファイルのローカル コピーを取得するには、新しいワークスペースを作成し、そのワークスペースのマッピングを指定します。次に、get コマンドを使用して、ソース ファイルをワークスペースに読み込みます。
コンピュータ上で Team Foundation バージョン管理コマンドを実行するためには、ワークスペースを作成する必要があります。ワークスペースには実行した操作の出力が保持され、その出力をチェックインによってサーバーにコミットできます。
バージョン管理されたファイルを管理するためのワークスペースを作成するには
[スタート] ボタンをクリックし、[すべてのプログラム] をクリックします。次に [Microsoft Visual Studio 2008] をポイントし、[Visual Studio Tools] をポイントして、[Visual Studio 2008 コマンド プロンプト] をクリックします。
「mkdir c:\projects」と入力します。
「cd c:\projects」と入力します。
「tf workspace /new /s:servername」と入力し、Enter キーを押します。servername は、Team Foundation Server の名前 (例 : tf workspace /new /s:/team1server) です。
メモ : 初めてサーバーに接続するときには、URL の全体を指定する必要があります。たとえば、"http://team1server:8080" と指定します。
[ワークスペースの追加] ダイアログ ボックスに新しいワークスペースの名前 ("cmdwalkthrough" など) を入力します。
[ソース管理フォルダ] 列で、サーバーからチーム プロジェクトを選択します。
省略記号 (…) をクリックすると、サーバー フォルダを参照できます。
選択したフォルダが [ローカル フォルダ] 列に表示された c:\projects フォルダにマップされます。
[OK] をクリックします。
コマンド プロンプトで「tf workspaces」と入力することにより、現在のコンピュータ上で作成したすべてのワークスペースを確認できます。詳細については、「Workspaces コマンド」を参照してください。
ワークスペースを作成すると、そのワークスペースの定義が保持されます。Team Foundation Server はワークスペースの定義を格納し、そのワークスペース内にあるすべてのファイル、各ファイルのベースになっているバージョン、および現在のステータスの一覧を表示します。ワークスペースの定義はサーバーに格納されるため、適切なアクセス許可を持つユーザーであれば、保留中の変更を除き、各自のコンピュータ上に作業環境を正確に複製できます。リソースを追加する方法の詳細については、「Get コマンド」を参照してください。
ファイルの追加と編集
ワークスペースを作成したら、バージョン管理に追加するファイルを指定できます。それらのファイルを編集したら、変更をチェックインします。
バージョン管理に追加するファイルを準備するには
コマンド プロンプトで「notepad 314.cs」と入力し、Enter キーを押します。
"新しく作成しますか?" というメッセージが表示されたら、[はい] をクリックします。
メモ帳で、「using System.IO;」と入力し、変更内容を保存してメモ帳を閉じます。
コマンド プロンプトで「tf add 314.cs 」と入力して、保留中の変更の一覧にファイルを追加します。
「tf status 」と入力して、314.cs の保留中の追加を確認します。
このコマンドを使用すると、現在のワークスペース内のすべての保留中の変更を表示できます。
Team Foundation では、1 つの手順でバージョン管理サーバーに項目を追加することはできません。まず、ワークスペースの保留中の変更の一覧にファイルを追加します。次に、すべての保留中の変更を 1 つのまとまりとしてバージョン管理サーバーに送信します。
Team Foundation では、この 2 段階のファイル追加プロセスを行うことで、ファイルをサーバーにチェックインする前に、コードのテストとコンパイルをコンテキスト内で確実に実行できます。つまり、Team Foundation が何らかの理由でいずれかの変更をサーバーにコミットできない場合、すべての変更は一切コミットされません。
保留中の変更のチェックイン
一連の保留中の変更をチェックインすると、Team Foundation によって変更セットが作成されます。
ワークスペース内のすべての保留中の変更をチェックインするには
コマンド プロンプトで、「tf checkin」と入力します。
[チェックイン] ダイアログ ボックスで、[コメント] ボックスに変更の種類を説明するコメントを入力し、[チェックイン] をクリックします。
変更セットとは、Team Foundation が単一のチェックイン操作に関連するあらゆるものをバンドルする論理コンテナです。ほとんどのチェックインは、ここで紹介する例ほど単純ではありません。多くの場合、チェックインには複数のファイルとフォルダへの変更が伴います。したがって、変更セットは、1 つのまとまりとしてワークスペースに読み込むことができる作業の完全なパッケージといえます。
変更セットの構成要素は次のとおりです。
追加、名前変更、編集、削除、移動など、ソース ファイルとフォルダのリビジョン
バグなどの関連作業項目
変更セット番号、作成者、日付/時刻などのシステム メタデータ
チェックイン メモとコメント
次に、314.cs ファイルのバージョンをもう 1 つ作成し、同じファイルの複数のバージョンがどのようにバージョン管理サーバーに格納されるのかを確認します。
バージョン管理の対象となるファイルの新しいバージョンを作成するには
コマンド プロンプトで、「tf checkout 314.cs」と入力します。
「notepad 314.cs」と入力します。
メモ帳で、「using System.IO;」の後に新しい行を追加し、「using System.Windows;」と入力します。
メモ : この手順によって、意図的にエラーを含めます。後の手順で、ファイルをエラーのないバージョンにロールバックする方法を説明します。
変更内容を保存し、メモ帳を閉じます。
コマンド プロンプトで、「tf checkin」と入力します。
[チェックイン] ダイアログ ボックスで、[コメント] ボックスにコメントを入力し、[チェックイン] をクリックします。
314.cs ファイル内の保留中の変更が新しい変更セットとしてサーバーにチェックインされます。これによって、バージョン管理サーバーには 314.cs ファイルのバージョン 2 も作成されます。
ファイルを以前のバージョンに戻す
ソフトウェア開発者は、作業環境を 2 か月前の状態に戻し、特定のビルドを対象とした修正を行うことを求められることが頻繁にあります。変更セット番号によって、一定の期間内にチェックインした変更を特定できます。
変更セット番号は、関連するファイルとフォルダの一連のリビジョンに対する一意の識別子です。また、変更セット番号は特定の日時におけるバージョン管理サーバー全体のバージョン番号でもあります。
したがって、ワークスペースを、先ほどの問題のあるコード行、「using System.Windows;」をチェックインした時点のサーバーの正確な状態に戻すことができます。
ワークスペースを変更セットに同期させるには
コマンド プロンプトで、「tf get /version:C<##>」と入力します。<##> は、314.cs の元のバージョンが含まれる変更セットの番号です。
メモ : 314.cs ファイルに対して履歴コマンドを使用すると、正しい変更セットを取得できます。たとえば、コマンド ラインから「tf history 314.cs」と入力します。
Get コマンドは、マップされたすべてのファイルとサブフォルダの作業コピーをサーバーからローカル ワークスペースに読み込みます。取得されるファイルは、変更セット <##> が作成された時点の状態のものです。メモ帳で 314.cs を開くと、"using System.IO;." という行だけが表示されていることがわかります。
参照
処理手順
チュートリアル : Team Foundation のバージョン管理について