Team Foundation バージョン管理とは

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

ソフトウェア プロジェクトが大きいか小さいかにかかわらず、できるだけ早くバージョン管理を使用することをお勧めします。 バージョン コントロール システムは、時間の経過にともなうコード変更の追跡に役立つソフトウェアで構成されています。 コードを編集するときに、ファイルのスナップショットを取得するようにバージョン コントロール システムに指示します。 バージョン コントロール システムはスナップショットを永続的に保存するので、後で必要なときに呼び戻すことができます。

Azure DevOps Services と TFS には、バージョン コントロールのモデルが 2 つあります。分散型バージョン コントロールである Git と、集中型バージョン コントロールである Team Foundation バージョン管理 (TFVC) です。 この入門編は、TFVC を使用する際の出発点としてご利用いただけます。 使用する Azure DevOps Services/TFS バージョン コントロールの種類を決める場合は、「プロジェクトに適したバージョン コントロールの選択」を参照してください。

バージョン コントロールを使用する理由

バージョン コントロールを使用しないと、コンピューターにコードの複数のコピーが保持されることになります。 これは危険です。コードの誤ったコピーのファイルを簡単に変更または削除できてしまうため、作業が失われるおそれがあります。 バージョン コントロール システムでは、コードのすべてのバージョンを管理し、一度に 1 つのバージョンを表示することで、この問題を解決します。

バージョン コントロール システムには、次の利点があります。

  • ワークフローの作成 - バージョン コントロール ワークフローを使用すると、全員が、異なるツールや互換性のないツールでそれぞれ独自の開発プロセスを使用しているという混乱を防ぐことができます。 バージョン コントロール システムによってプロセスの実施とアクセス許可が提供されるため、全員に同じページが表示されたままになります。
  • バージョンの操作 - すべてのバージョンには、バグの修正や機能の追加など、そのバージョンの変更内容に関する説明が含まれています。 これらの説明は、個々のファイル変更ではなく、バージョン別にコードの変更をフォローする場合に役立ちます。 バージョンに格納されているコードは、必要に応じていつでもバージョン コントロールから表示および復元できます。 これで、新しい作業を任意のバージョンのコードに基づいて簡単に行うことができます。
  • 共同でのコード作成 - バージョン コントロールによってバージョンが同期され、変更がチームの他の変更と競合しないようにします。 チームは、バージョン コントロールを使用して、複数のユーザーが同時に変更を行った場合でも、競合を解決して防止できるようにします。
  • 履歴の保持 - バージョン コントロールを使用して、チームがコードの新しいバージョンを保存したときに変更の履歴が保持されます。 この履歴を確認して、誰が、なぜ、いつ変更を行ったかを調べることができます。 前の正常なバージョンにいつでもロールバックできるため、履歴を利用して自信を持って実験できます。 履歴を使用すると、以前のリリースのバグを修正するなど、任意のバージョンのコードを作業のベースにすることができます。
  • タスクの自動化 - バージョン コントロールの自動化機能では、チームの時間を節約し、一貫性のある結果を生み出します。 新しいバージョンがバージョン コントロールに保存されたときに、テスト、コード分析、デプロイを自動化できます。

バグの再現、新しいツールの学習、新しい機能やコンテンツの追加など、開発者にとって時間を要する作業はたくさんあります。 ユーザーの要求がスケールアップする中で、バージョン コントロールを利用して、チームが連携して納期を守ることができます。

Team Foundation バージョン管理

TFVC は集中型のバージョン コントロール システムです。 通常、チーム メンバーの開発用コンピューターには、各ファイルの 1 つのバージョンだけが存在します。 履歴データはサーバーにのみ保持されます。 分岐はパスに基づき、サーバー上で作成されます。

TFVC では、細分化されたアクセス許可を適用して、アクセスをファイル レベルにまで制限できます。 チームは Azure DevOps Server に作業をすべてチェックインするため、簡単に変更を監査し、どのユーザーが変更セットをチェックインしたか特定できます。 比較注釈を使用して、行った変更個所を正確に特定できます。

クイックスタート

プロジェクトを作成し、ワークスペースを構成し、コードをレビューおよび共有して、作業を開始します。 次の任意のクライアントまたは IDE を使用できます。

ステップバイステップのチュートリアル

次のチュートリアルでは、TFVC での作業の基本について説明します。ここでは、Visual Studio と TFVC を使用する DevOps 開発者の 1 日を示しています。

目的に合ったトピックをクリックしてください

  • 開発用コンピューターをセットアップして作業を開始する

    バージョン コントロールされたコードベースのすべての利点を活用できるように、数分間、時間をさいて開発用コンピューターをセットアップします。

  • ワークフロー モデルを選択する - サーバーまたはローカル ワークスペース

    • サーバー ワークスペース - 変更を行う前に、チーム メンバーは公的にファイルをチェックアウトします。 ほとんどの操作では、開発者がサーバーに接続している必要があります このシステムを利用して、ワークフローを簡単にロックできます。 同じように動作する他のシステムとして、Visual Source Safe、Perforce、および CVS があります。 サーバー ワークスペースを使用すると、ブランチあたり数百万のファイルや大きなバイナリ ファイルを含む非常に大規模なコードベースに拡張できます。

    • ローカル ワークスペース - 各チーム メンバーは、コードベースの最新バージョンのコピーを手元に取得し、必要に応じてオフラインで作業します。 開発者は、自分の変更をチェックインし、必要に応じて競合を解決します。 同じように動作する別のシステムとして、Subversion があります。

  • バージョン コントロールされたコードベースでアプリケーションを開発する

    ほとんどの場合、バージョン コントロールについて考える必要はありません。 変更を管理し把握する必要があるときにシステムのサポートを受けます。

  • 作業を中断する

    行っている作業の一部または全部を棚上げしなくてはいけない場合があります。 バージョン管理システムによって、面倒を減らし、中断によって無駄になる時間を短縮できます。

  • チームに作業を提出する

    変更をチェックインし、作成した内容に基づいてチームがビルドし、それをテスト、リリースできるようにします。

  • リスクを分離する

    分岐とロックを使用して、異なるチームが作業することでもたらされるリスクを分離します。

  • 過去のバージョンを表示および管理する

    バージョン管理システムの利点の 1 つとして、ファイルに加えられた変更について、過去にさかのぼって詳細情報を確認できる機能があります。

  • フォルダーやファイルを比較する

    サーバー フォルダーとローカル フォルダーを相互に比較して、各フォルダーでの内容の相違点を表示できます。

  • Team Foundation バージョン管理の競合の解決

    バージョン管理を使用する大きな利点は、複数のメンバーがファイルを同時に操作できることです。 1 つの欠点は、ときには競合を解決する必要があることです。 競合が発生すると手間がかかることもありますが、競合を把握して解決するのに役立つ情報とツールが用意されています。

  • バージョン コントロール ロックを操作する

    ファイルまたはフォルダーのチェックアウトと変更を防ぐ必要がある場合は、これらをロックできます。

tf コマンド ラインからのみ使用できる操作

次の表に、tf コマンド ライン ツールを使用してコマンド プロンプトでのみ実行できる TFVC のタスクを示します。

タスク command
別のユーザーのワークスペースを削除する。 /delete オプションを指定した workspace
別のユーザーのチェックアウトを元に戻す。 undo
別のユーザーのロックを削除する。 lock
ラベル スコープを定義する。 label
ベースレス マージを実行する。 merge
コンテンツを完全に破棄する。 destroy
1 つ以上の変更セットの影響をロールバックする。 rollback