61
TFSUG 8/30 TFSUG 8/30 TFSUG 8/30 TFSUG 8/30 怜右(まつかわ りょうすけ) @matsukawar

VSSからTFSへの移行(TFSUG8/30発表)

Embed Size (px)

DESCRIPTION

Microsoft Visual Sorce Safe(VSS)の単体での販売が終了し、今、ソースコードの管理はTFSの構成管理機能に移行する事が推奨されています。そこで、VSSとTFSの違いについて確認し、VSSからTFSへ移行する際に必要な事/やらなければいけない事をまとめたいと思います。 TFSでより効果的な、ソースコードのバージョン管理を目指しましょう!

Citation preview

Page 1: VSSからTFSへの移行(TFSUG8/30発表)

TFSUG 8/30TFSUG 8/30TFSUG 8/30TFSUG 8/30

松川 怜右(まつかわ りょうすけ)@matsukawar

Page 2: VSSからTFSへの移行(TFSUG8/30発表)

– 工作機械の制御系システムSE– .Net系開発者– TFS2010サーバの運用, 保守(2年ちょっと)

• TechEd2010の⻑沢さんの発表に出会ってからTFSUGの方に参加!– TFS, ALM, VS2012, TFService

Page 3: VSSからTFSへの移行(TFSUG8/30発表)

1.1.1.1. VSSVSSVSSVSSとTFSTFSTFSTFSの違い2.2.2.2. VSS to TFSVSS to TFSVSS to TFSVSS to TFS

3.3.3.3. 我流・運⽤⽅法

Page 4: VSSからTFSへの移行(TFSUG8/30発表)

アジャイルソフトウェアエンジニアリング基本概念から継続的フィードバックまで

著者: Sam Guckenheimer価格:3990円 (日経BP社, ISBN978-4-8222-9468-7)

• 概要– スクラム開発の必要性

• それをどのように、MS製品で実現するのか

– バージョン管理については、6章の後半と、9章で少し触れられてます

Page 5: VSSからTFSへの移行(TFSUG8/30発表)

• Team Foundation Server Team Foundation Server Team Foundation Server Team Foundation Server を使っていますか????

Page 6: VSSからTFSへの移行(TFSUG8/30発表)

• ソースコードの管理ツールは????– Visual Source Safe (VSS)

– Team Foundation Server (TFS)

– その他– 使用していない

★アンケートの結果載せときますVSS:40%, TFS20%, その他:40%

Page 7: VSSからTFSへの移行(TFSUG8/30発表)

VSSからTFSへの移⾏

Page 8: VSSからTFSへの移行(TFSUG8/30発表)

• 2012201220122012年1111月1111⽇単体での販売が終了• 使⽤している人は、TFSTFSTFSTFSへの移⾏を推奨

– 移⾏時には「計画」をたてて実⾏することが必要

Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005

http://www.microsoft.com/ja-jp/dev/products/ssafe/default.aspx

Page 9: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSの後継ツールは, TFS, TFS, TFS, TFS

VSS TFS2010

目的目的目的目的

ですがですがですがですが

バージョン管理バージョン管理バージョン管理バージョン管理

(Version Control)

Application Lifecycle

Management (ALM)

• ALMALMALMALM

– 開発プロセス全般の統合• タスク管理, ビルド管理, バージョン管理, テスト管理 などの統合

Page 10: VSSからTFSへの移行(TFSUG8/30発表)

バージョン管理– ソースコードのバージョン管理–分岐////マージを支援する仕組み

Page 11: VSSからTFSへの移行(TFSUG8/30発表)

VSS TFS

目的 バージョン管理 ALM

想定規模 20人くらい ~数千人

仕組み フォルダ共有 SQL Server

容量制限 4GB SQL Serverに依存

独立したUIツール ある ない

ソースの共有 できる? できる!

ユーザ認証 ID/PWの独自管理 ドメインユーザ

Page 12: VSSからTFSへの移行(TFSUG8/30発表)

意味意味意味意味

ロック ファイルの状態(3種類)

変更セット チェックアウトされているファイル郡

マップ フォルダマッピング設定1個あたりの名称

ワークスペース マップの集合体で、さらに、変更セットの状態を保持。TFSで管理される。

シェルブ 変更セットの変更内容をTFSに保存する

ゲイトチェックイン チェックインの要件の設定、仮チェックイン

Page 13: VSSからTFSへの移行(TFSUG8/30発表)

変更点変更点変更点変更点

チェックアウト ・指定したロック状態でチェックアウト・ワークスペースごとに管理

保留中のチェックイン 保留中の変更(セット)

(※検索機能はTF.EXEのみ)

ログイン画面 AD連携の場合、表示されない

履歴 変更セットとしての履歴が表示される

ピン 無い

Page 14: VSSからTFSへの移行(TFSUG8/30発表)

ファイルサーバ等

VSSVSSVSSVSS VSSVSSVSSVSS VSSVSSVSSVSS

• VSSVSSVSSVSSの場合– VSS対クライアントの関係– 各種設定は各VSSで保持

Clients

Page 15: VSSからTFSへの移行(TFSUG8/30発表)

Domain Controller(Active Directory)

TFS

SQL Server

• TFSTFSTFSTFSの場合– ドメインユーザ連携– SQL Serverでデータを管理– 各種設定はTFSで⼀括管理

• セキュリティ設定など

Clients

Page 16: VSSからTFSへの移行(TFSUG8/30発表)

VSSVSSVSSVSS TFSTFSTFSTFS

・トランザクションの⼀貫性が保障されない・ファイルごとの管理

・⼀貫性が保障された・変更セットごとの管理

TFSはチーム開発(頻繁な競合)が考慮されている!

・常に出荷可能な状態でなくてもよい?

・常に出荷可能な状態に(なるべく)近づける!

Page 17: VSSからTFSへの移行(TFSUG8/30発表)

• MSDNMSDNMSDNMSDNサブスクリプション1111ライセンスあたり、1111サーバライセンス+1CAL(TFS1CAL(TFS1CAL(TFS1CAL(TFSにアクセスできる権利))))の付属– 現状でMSDNサブスクリプションを利用しているユーザにとって

は導入しやすい!– 無償版は5CALまでOK(⼩規模なチームの構成管理向け)

Page 18: VSSからTFSへの移行(TFSUG8/30発表)

• 無償版でバージョン管理が実現できる!!!!• 制約事項

– SQL Server SQL Server SQL Server SQL Server ExpressEditionExpressEditionExpressEditionExpressEdition((((無償版))))の容量制限• チームプロジェクトごとにデータベースサーバを分散?

– 5CAL5CAL5CAL5CALまで– 使えない機能も

• VSS相当の機能を実現するには支障がない• より⾼度なALMを実現する際や中規模以上のチームで移用する際に

は有償版を購入し、乗り換えればOK

Page 19: VSSからTFSへの移行(TFSUG8/30発表)

VSSからTFSへの移⾏

Page 20: VSSからTFSへの移行(TFSUG8/30発表)

• TFS2010TFS2010TFS2010TFS2010 「簡単インストール」• TFServiceTFServiceTFServiceTFService 「すぐ、はじめられる」

Page 21: VSSからTFSへの移行(TFSUG8/30発表)

開発チームAAAA人数 5人開発環境 VS2005

開発チームBBBB人数 5人開発環境 VS2005

開発チームCCCC人数 10人開発環境 VS2010

製品1用VSS

製品3用VSS

製品2用VSS

機能分岐1

機能分岐2

複製

手動マージ

複製

手動マージ

Page 22: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSの複製とマージ–⼤きな作業を⾏う度VSSを複製

• VSSの乱⽴

–手動マージ• 職人技の様に、様々なツールを駆使してやるが・・・• ボンミス、作業漏れの多発• テストの問題

Page 23: VSSからTFSへの移行(TFSUG8/30発表)

• 遅い• 削除したファイルが復元できない• セキュリティ設定の個別管理• 容量制限(4GB)の存在• データベースが壊れ、復帰できなくなる• 異常終了が多発

Visual Visual Visual Visual SourceSafe SourceSafe SourceSafe SourceSafe データベース運⽤ガイドhttp://support.microsoft.com/kb/902053/ja

Page 24: VSSからTFSへの移行(TFSUG8/30発表)

• 目的– 分岐戦略の⾒直し、仕組み作りをしたい– VSSから脱却して、作業効率UP

– (+将来、タスク管理やビルド管理を⾏いたい)

• ((((導入を後押しした))))背景– Hyper-V(仮想化)サーバの導入– ライセンス保有

Page 25: VSSからTFSへの移行(TFSUG8/30発表)

1.1.1.1. 情報収集2.2.2.2. 分岐戦略3.3.3.3. インフラ構成4.4.4.4. TFSTFSTFSTFSの実験5.5.5.5. TFSTFSTFSTFSの構築と移⾏6.6.6.6. フォローとサポート

Page 26: VSSからTFSへの移行(TFSUG8/30発表)

• 「TFSTFSTFSTFSは何か????」を情報収集– TFSは拡張性あるツールである!

Visual Studio ALM Visual Studio ALM Visual Studio ALM Visual Studio ALM クイックリファレンスガイドhttp://vsarquickguide.codeplex.com/releases/view/90257

キャパシティティプランニング プロジェクトスクラムガイド

Page 27: VSSからTFSへの移行(TFSUG8/30発表)

• フィーチャ別分岐(機能的/組織的)– 短期的な機能実現 を⾏うための分岐– ⻑期的な機能実現 を⾏うための分岐 に分ける。

• リリース別分岐(出荷に連動)– リリース戦略に基づいて分岐を保持する。

Team Team Team Team Foundation Server 2010 Foundation Server 2010 Foundation Server 2010 Foundation Server 2010 ブランチとマージ ガイドhttp://vsarbranchingguide.codeplex.com/releases/view/90253

Page 28: VSSからTFSへの移行(TFSUG8/30発表)

TRUNK

DEV(1.1)

BUILD(1.1.1)

REL(1.1.1.1)

TRY

6ヶ月に1回※短期的な開発分岐

1ヶ月に1回定期リリース

⻑期的な開発分岐

Page 29: VSSからTFSへの移行(TFSUG8/30発表)

TRUNK

DEV(1.0)

REL(1.0.0.0)

TRY

BUILD(1.0.0) BUILD(1.0.1)

REL(1.0.1.0)

BUILD(1.0.1)

REL(1.0.1.0)

DEV(1.1)

Page 30: VSSからTFSへの移行(TFSUG8/30発表)

TRUNK

DEV(1.0)

REL(1.0.0.0)

BUILD(1.0.0) BUILD(1.0.1)

REL(1.0.1.0) REL(1.0.1.1111)

Page 31: VSSからTFSへの移行(TFSUG8/30発表)

• TFS上での管理方法

メイン

開発ブランチ

HotFixブランチ

バージョン管理外のアイテム

リリースブランチ

Page 32: VSSからTFSへの移行(TFSUG8/30発表)

Domain Controller(Active Directory)

Clients

SQL Server

TFS2010

Hyper-V Server

Page 33: VSSからTFSへの移行(TFSUG8/30発表)

• インフラ////サーバ管理者と仲良くする事– ADの設定を変更してもらいたいというときに有利

• 後々、セキュリティ設定で楽できます– TFSのおき場所、DBのおき場所を融通してもらいたい– 評価用の仮想サーバを提供してほしい– 既存の仕組みに相乗りしたい

• データベースサーバのバックアップの仕組みに乗っかれるかも• 拠点間バックアップ

Page 34: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSと同等の機能が実現できる????• 実際、想定されるものをとにかくやってみる

– ベテラン技術者と2人でケース・バイ・ケースを検証– Wikiにまとめる

Page 35: VSSからTFSへの移行(TFSUG8/30発表)

• チェックイン, , , , 共有チェックアウト, , , , ロック• シェルブ, , , , アンシェルブ• 競合の解決

– 競合の解決/〜の再開, 用語に注意(みんな罠に引っかかった)• ワークスペースの運⽤⽅法

– マップ, クローク, 切り替え, TF.EXEを使用した作成と削除• VSVSVSVSからのアクセス⽅法や動作の確認

Page 36: VSSからTFSへの移行(TFSUG8/30発表)
Page 37: VSSからTFSへの移行(TFSUG8/30発表)

• Visual Studio 2005Visual Studio 2005Visual Studio 2005Visual Studio 2005

– 更新プログラム(KB979258)を適用後、再度SP1を適用すると、利用可能となる

– 機能面に制約がある(バージョン管理面では問題ない)

• VisualVisualVisualVisual StudioStudioStudioStudio 2010201020102010

– Team Explorer標準搭載。すぐにTFSにつないでOK

Page 38: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSの整合性の確認• TFSTFSTFSTFSのデータのバックアップと復元

– SQL Serverの知識が必要• TFSTFSTFSTFSの引越し• TFSTFSTFSTFSのメンテナンス

– サービス停止, サービス再開– IISから⼤量にログが吐かれる対策

Page 39: VSSからTFSへの移行(TFSUG8/30発表)

• TFSTFSTFSTFSサービスの停止

• TFSTFSTFSTFSサービスの再開

cd C:¥program files¥microsoft team foundation server 2010¥tools¥TFSServiceControl quiesce

cd C:¥program files¥microsoft team foundation server 2010¥tools¥TFSServiceControl unquiesce

Page 40: VSSからTFSへの移行(TFSUG8/30発表)

• 今のVSSVSSVSSVSSは整合性の確認– VSSのデータは壊れやすい仕様– VSS付属のAnalyzeツールを⼀応かけてみる

• 壊れていなければ問題なし?• しばらくかけていないと・・・

Visual Visual Visual Visual SourceSafeSourceSafeSourceSafeSourceSafe ANALYZE ANALYZE ANALYZE ANALYZE ユーティリティhttp://msdn.microsoft.com/ja-jp/library/ysxsfw4x(VS.80).aspx

Page 41: VSSからTFSへの移行(TFSUG8/30発表)

• バックアップの⽅法– SQL ServerのDB差分を毎⽇Backupサーバにバックアップ

• 通常の復元⽅法– SQL Serverにデータベースを復元– TFSにチームプロジェクトをアタッチ

• 最終手段– Hyper-Vサーバのスナップショットを戻す

Visual Studio Visual Studio Visual Studio Visual Studio アプリケーション ライフサイクル管理 配置のバックアップおよび復元http://msdn.microsoft.com/ja-jp/library/bb552295(VS.100).aspx

Page 42: VSSからTFSへの移行(TFSUG8/30発表)

• チームプロジェクト((((移⾏先))))の作成– 製品単位– プロジェクトコレクションは組織単位

• セキュリティ設定– 組織単位のドメイン・ユーザグループを作成し、使用– ドメインユーザの追加/離脱に連動

Page 43: VSSからTFSへの移行(TFSUG8/30発表)

• XXXXデーを決める

• VSSVSSVSSVSSの利⽤頻度の確認– ビジネス/開発現場の影響を最⼩限に抑えつつ、移⾏したい

• 必要なものを⽤意– 移⾏の前に、先⾏してTFSを⽴ち上げる– 実験環境を作成しておく

Page 44: VSSからTFSへの移行(TFSUG8/30発表)

インフラ

• インフラ構成• 運用/管理

TFSTFSTFSTFS

• 構成• ライセンス• 検証

運⽤

• 運用ルール• サポート体制

開発サイクルを止めない、ためにも!

Page 45: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSの利⽤者すべてに通知– チェックアウト状態を0個にする(必須)

– VSSのデータベースをロックし、書き込みができない状態にする• TFSTFSTFSTFSへのデータ移動

– VSSConverter.exe を使用せず、データのみTFSに移⾏– 開発環境からアクセスできることの確認– 取得・動作確認

Page 46: VSSからTFSへの移行(TFSUG8/30発表)

• VSSVSSVSSVSSのデータ• VSSVSSVSSVSSの履歴

• VSSVSSVSSVSSのユーザ設定– TFSのセキュリティにマッピング

Visual SourceSafe(VSS)Visual SourceSafe(VSS)Visual SourceSafe(VSS)Visual SourceSafe(VSS)からTeam Foundation Server(TFS) 2010Team Foundation Server(TFS) 2010Team Foundation Server(TFS) 2010Team Foundation Server(TFS) 2010に移⾏するメモ(川俣晶さんのブログ)http://mag.autumn.org/Content.modf?id=20100422113252

変更セットのチェックイン日:変換した日コメント:{VSSの履歴の日時}+VSSの履歴のコメント

Page 47: VSSからTFSへの移行(TFSUG8/30発表)

• よく下調べをしておく– VSSライクといえど、侮ってはいけない。

• サポート– サポートなどの時間をあらかじめ確保しておく– 競合発生時の対処、VSやWSの設定ミス、がほとんど

• WikiWikiWikiWikiの活⽤– Wikiなどを用意して情報を共有する

Page 48: VSSからTFSへの移行(TFSUG8/30発表)

• バージョン管理による同時並⾏開発の実現– VS標準のマージツール(半自動)により効率的なマージを実施

• VSSVSSVSSVSSの問題を解消– 異常終了などの問題が解決– コードの取得などの操作がVSSの半分の時間(体感)で実施– 変更セットによる情報の追跡が容易

Page 49: VSSからTFSへの移行(TFSUG8/30発表)

VSSからTFSへの移⾏

Page 50: VSSからTFSへの移行(TFSUG8/30発表)

• 容量制限からの開放– 簡単インストールでExpress版を入れてしまった– 有償版SQL Serverへのデータの移⾏

• チームプロジェクトのデタッチ、DBの移動、チームプロジェクトのアタッチ

Page 51: VSSからTFSへの移行(TFSUG8/30発表)

Domain Controller(Active Directory)

Clients

TFS2010

Hyper-V Server

SQL Serverビルドエージェント

Page 52: VSSからTFSへの移行(TFSUG8/30発表)
Page 53: VSSからTFSへの移行(TFSUG8/30発表)

• ワークスペースを間違えないために– ワークスペースの切り替えは危険– 作業時・ワークスペース切り替え時には、仮想ドライブを作成す

るバッチ(substコマンド)を必ず実⾏

• 要員の配置変更時にマップをきれいにする– 開発用PCの利用者が切り替わるときは要注意– TF.EXEで削除しないといけなくなる

Page 54: VSSからTFSへの移行(TFSUG8/30発表)

連動しない!

Page 55: VSSからTFSへの移行(TFSUG8/30発表)

比較ツールWinMergeWinMergeWinMergeWinMerge

マージツールP4MergeP4MergeP4MergeP4Merge

Page 56: VSSからTFSへの移行(TFSUG8/30発表)

VSSからTFSへの移⾏

Page 57: VSSからTFSへの移行(TFSUG8/30発表)

• Windows Azure上のTFS– tfspreview.com でプレビュー評価版が利用可能– インフラ系をWindows Azureにおまかせ– Windows Live Id連携– Test Controllerとの連動もできる

• Microsoft Visual Studio Agent 2012

• クラウド間でのアプリケーションのビルドおよびテストが可能– (バックアップどうする?)

Page 58: VSSからTFSへの移行(TFSUG8/30発表)
Page 59: VSSからTFSへの移行(TFSUG8/30発表)

• とってきて入れるだけ• 手順

– VSSから移⾏したいプロジェクトを取得する。– tfserviceにアカウント登録して、チームプロジェクトを作成する。– tfserviceのソース管理に、ソースコードをバインドする。

• 注意– preview版ですので、仕様変更などある可能性あります。

Page 60: VSSからTFSへの移行(TFSUG8/30発表)

Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005

http://www.microsoft.com/ja-jp/dev/products/ssafe/default.aspx

Team Foundation Server Team Foundation Server Team Foundation Server Team Foundation Server によるソースコード管理入門http://blogs.msdn.com/b/kkondo/archive/2010/04/29/team-foundation-server-2010.aspx

Page 61: VSSからTFSへの移行(TFSUG8/30発表)