Upload
ryosuke-matsukawa
View
6.822
Download
10
Embed Size (px)
DESCRIPTION
Microsoft Visual Sorce Safe(VSS)の単体での販売が終了し、今、ソースコードの管理はTFSの構成管理機能に移行する事が推奨されています。そこで、VSSとTFSの違いについて確認し、VSSからTFSへ移行する際に必要な事/やらなければいけない事をまとめたいと思います。 TFSでより効果的な、ソースコードのバージョン管理を目指しましょう!
Citation preview
TFSUG 8/30TFSUG 8/30TFSUG 8/30TFSUG 8/30
松川 怜右(まつかわ りょうすけ)@matsukawar
– 工作機械の制御系システムSE– .Net系開発者– TFS2010サーバの運用, 保守(2年ちょっと)
• TechEd2010の⻑沢さんの発表に出会ってからTFSUGの方に参加!– TFS, ALM, VS2012, TFService
1.1.1.1. VSSVSSVSSVSSとTFSTFSTFSTFSの違い2.2.2.2. VSS to TFSVSS to TFSVSS to TFSVSS to TFS
3.3.3.3. 我流・運⽤⽅法
アジャイルソフトウェアエンジニアリング基本概念から継続的フィードバックまで
著者: Sam Guckenheimer価格:3990円 (日経BP社, ISBN978-4-8222-9468-7)
• 概要– スクラム開発の必要性
• それをどのように、MS製品で実現するのか
– バージョン管理については、6章の後半と、9章で少し触れられてます
• Team Foundation Server Team Foundation Server Team Foundation Server Team Foundation Server を使っていますか????
• ソースコードの管理ツールは????– Visual Source Safe (VSS)
– Team Foundation Server (TFS)
– その他– 使用していない
★アンケートの結果載せときますVSS:40%, TFS20%, その他:40%
VSSからTFSへの移⾏
• 2012201220122012年1111月1111⽇単体での販売が終了• 使⽤している人は、TFSTFSTFSTFSへの移⾏を推奨
– 移⾏時には「計画」をたてて実⾏することが必要
Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005Visual SourceSafe 2005
http://www.microsoft.com/ja-jp/dev/products/ssafe/default.aspx
• VSSVSSVSSVSSの後継ツールは, TFS, TFS, TFS, TFS
VSS TFS2010
目的目的目的目的
ですがですがですがですが
バージョン管理バージョン管理バージョン管理バージョン管理
(Version Control)
Application Lifecycle
Management (ALM)
• ALMALMALMALM
– 開発プロセス全般の統合• タスク管理, ビルド管理, バージョン管理, テスト管理 などの統合
バージョン管理– ソースコードのバージョン管理–分岐////マージを支援する仕組み
VSS TFS
目的 バージョン管理 ALM
想定規模 20人くらい ~数千人
仕組み フォルダ共有 SQL Server
容量制限 4GB SQL Serverに依存
独立したUIツール ある ない
ソースの共有 できる? できる!
ユーザ認証 ID/PWの独自管理 ドメインユーザ
意味意味意味意味
ロック ファイルの状態(3種類)
変更セット チェックアウトされているファイル郡
マップ フォルダマッピング設定1個あたりの名称
ワークスペース マップの集合体で、さらに、変更セットの状態を保持。TFSで管理される。
シェルブ 変更セットの変更内容をTFSに保存する
ゲイトチェックイン チェックインの要件の設定、仮チェックイン
変更点変更点変更点変更点
チェックアウト ・指定したロック状態でチェックアウト・ワークスペースごとに管理
保留中のチェックイン 保留中の変更(セット)
(※検索機能はTF.EXEのみ)
ログイン画面 AD連携の場合、表示されない
履歴 変更セットとしての履歴が表示される
ピン 無い
ファイルサーバ等
VSSVSSVSSVSS VSSVSSVSSVSS VSSVSSVSSVSS
• VSSVSSVSSVSSの場合– VSS対クライアントの関係– 各種設定は各VSSで保持
Clients
Domain Controller(Active Directory)
TFS
SQL Server
• TFSTFSTFSTFSの場合– ドメインユーザ連携– SQL Serverでデータを管理– 各種設定はTFSで⼀括管理
• セキュリティ設定など
Clients
VSSVSSVSSVSS TFSTFSTFSTFS
・トランザクションの⼀貫性が保障されない・ファイルごとの管理
・⼀貫性が保障された・変更セットごとの管理
TFSはチーム開発(頻繁な競合)が考慮されている!
・常に出荷可能な状態でなくてもよい?
・常に出荷可能な状態に(なるべく)近づける!
• MSDNMSDNMSDNMSDNサブスクリプション1111ライセンスあたり、1111サーバライセンス+1CAL(TFS1CAL(TFS1CAL(TFS1CAL(TFSにアクセスできる権利))))の付属– 現状でMSDNサブスクリプションを利用しているユーザにとって
は導入しやすい!– 無償版は5CALまでOK(⼩規模なチームの構成管理向け)
• 無償版でバージョン管理が実現できる!!!!• 制約事項
– SQL Server SQL Server SQL Server SQL Server ExpressEditionExpressEditionExpressEditionExpressEdition((((無償版))))の容量制限• チームプロジェクトごとにデータベースサーバを分散?
– 5CAL5CAL5CAL5CALまで– 使えない機能も
• VSS相当の機能を実現するには支障がない• より⾼度なALMを実現する際や中規模以上のチームで移用する際に
は有償版を購入し、乗り換えればOK
VSSからTFSへの移⾏
• TFS2010TFS2010TFS2010TFS2010 「簡単インストール」• TFServiceTFServiceTFServiceTFService 「すぐ、はじめられる」
開発チームAAAA人数 5人開発環境 VS2005
開発チームBBBB人数 5人開発環境 VS2005
開発チームCCCC人数 10人開発環境 VS2010
製品1用VSS
製品3用VSS
製品2用VSS
機能分岐1
機能分岐2
複製
手動マージ
複製
手動マージ
• VSSVSSVSSVSSの複製とマージ–⼤きな作業を⾏う度VSSを複製
• VSSの乱⽴
–手動マージ• 職人技の様に、様々なツールを駆使してやるが・・・• ボンミス、作業漏れの多発• テストの問題
• 遅い• 削除したファイルが復元できない• セキュリティ設定の個別管理• 容量制限(4GB)の存在• データベースが壊れ、復帰できなくなる• 異常終了が多発
Visual Visual Visual Visual SourceSafe SourceSafe SourceSafe SourceSafe データベース運⽤ガイドhttp://support.microsoft.com/kb/902053/ja
• 目的– 分岐戦略の⾒直し、仕組み作りをしたい– VSSから脱却して、作業効率UP
– (+将来、タスク管理やビルド管理を⾏いたい)
• ((((導入を後押しした))))背景– Hyper-V(仮想化)サーバの導入– ライセンス保有
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. フォローとサポート
• 「TFSTFSTFSTFSは何か????」を情報収集– TFSは拡張性あるツールである!
Visual Studio ALM Visual Studio ALM Visual Studio ALM Visual Studio ALM クイックリファレンスガイドhttp://vsarquickguide.codeplex.com/releases/view/90257
キャパシティティプランニング プロジェクトスクラムガイド
• フィーチャ別分岐(機能的/組織的)– 短期的な機能実現 を⾏うための分岐– ⻑期的な機能実現 を⾏うための分岐 に分ける。
• リリース別分岐(出荷に連動)– リリース戦略に基づいて分岐を保持する。
Team Team Team Team Foundation Server 2010 Foundation Server 2010 Foundation Server 2010 Foundation Server 2010 ブランチとマージ ガイドhttp://vsarbranchingguide.codeplex.com/releases/view/90253
TRUNK
DEV(1.1)
BUILD(1.1.1)
REL(1.1.1.1)
TRY
6ヶ月に1回※短期的な開発分岐
1ヶ月に1回定期リリース
⻑期的な開発分岐
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)
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)
• TFS上での管理方法
メイン
開発ブランチ
HotFixブランチ
バージョン管理外のアイテム
リリースブランチ
Domain Controller(Active Directory)
Clients
SQL Server
TFS2010
Hyper-V Server
• インフラ////サーバ管理者と仲良くする事– ADの設定を変更してもらいたいというときに有利
• 後々、セキュリティ設定で楽できます– TFSのおき場所、DBのおき場所を融通してもらいたい– 評価用の仮想サーバを提供してほしい– 既存の仕組みに相乗りしたい
• データベースサーバのバックアップの仕組みに乗っかれるかも• 拠点間バックアップ
• VSSVSSVSSVSSと同等の機能が実現できる????• 実際、想定されるものをとにかくやってみる
– ベテラン技術者と2人でケース・バイ・ケースを検証– Wikiにまとめる
• チェックイン, , , , 共有チェックアウト, , , , ロック• シェルブ, , , , アンシェルブ• 競合の解決
– 競合の解決/〜の再開, 用語に注意(みんな罠に引っかかった)• ワークスペースの運⽤⽅法
– マップ, クローク, 切り替え, TF.EXEを使用した作成と削除• VSVSVSVSからのアクセス⽅法や動作の確認
• Visual Studio 2005Visual Studio 2005Visual Studio 2005Visual Studio 2005
– 更新プログラム(KB979258)を適用後、再度SP1を適用すると、利用可能となる
– 機能面に制約がある(バージョン管理面では問題ない)
• VisualVisualVisualVisual StudioStudioStudioStudio 2010201020102010
– Team Explorer標準搭載。すぐにTFSにつないでOK
• VSSVSSVSSVSSの整合性の確認• TFSTFSTFSTFSのデータのバックアップと復元
– SQL Serverの知識が必要• TFSTFSTFSTFSの引越し• TFSTFSTFSTFSのメンテナンス
– サービス停止, サービス再開– IISから⼤量にログが吐かれる対策
• 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
• 今のVSSVSSVSSVSSは整合性の確認– VSSのデータは壊れやすい仕様– VSS付属のAnalyzeツールを⼀応かけてみる
• 壊れていなければ問題なし?• しばらくかけていないと・・・
Visual Visual Visual Visual SourceSafeSourceSafeSourceSafeSourceSafe ANALYZE ANALYZE ANALYZE ANALYZE ユーティリティhttp://msdn.microsoft.com/ja-jp/library/ysxsfw4x(VS.80).aspx
• バックアップの⽅法– 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
• チームプロジェクト((((移⾏先))))の作成– 製品単位– プロジェクトコレクションは組織単位
• セキュリティ設定– 組織単位のドメイン・ユーザグループを作成し、使用– ドメインユーザの追加/離脱に連動
• XXXXデーを決める
• VSSVSSVSSVSSの利⽤頻度の確認– ビジネス/開発現場の影響を最⼩限に抑えつつ、移⾏したい
• 必要なものを⽤意– 移⾏の前に、先⾏してTFSを⽴ち上げる– 実験環境を作成しておく
インフラ
• インフラ構成• 運用/管理
TFSTFSTFSTFS
• 構成• ライセンス• 検証
運⽤
• 運用ルール• サポート体制
開発サイクルを止めない、ためにも!
• VSSVSSVSSVSSの利⽤者すべてに通知– チェックアウト状態を0個にする(必須)
– VSSのデータベースをロックし、書き込みができない状態にする• TFSTFSTFSTFSへのデータ移動
– VSSConverter.exe を使用せず、データのみTFSに移⾏– 開発環境からアクセスできることの確認– 取得・動作確認
• 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の履歴のコメント
• よく下調べをしておく– VSSライクといえど、侮ってはいけない。
• サポート– サポートなどの時間をあらかじめ確保しておく– 競合発生時の対処、VSやWSの設定ミス、がほとんど
• WikiWikiWikiWikiの活⽤– Wikiなどを用意して情報を共有する
• バージョン管理による同時並⾏開発の実現– VS標準のマージツール(半自動)により効率的なマージを実施
• VSSVSSVSSVSSの問題を解消– 異常終了などの問題が解決– コードの取得などの操作がVSSの半分の時間(体感)で実施– 変更セットによる情報の追跡が容易
VSSからTFSへの移⾏
• 容量制限からの開放– 簡単インストールでExpress版を入れてしまった– 有償版SQL Serverへのデータの移⾏
• チームプロジェクトのデタッチ、DBの移動、チームプロジェクトのアタッチ
Domain Controller(Active Directory)
Clients
TFS2010
Hyper-V Server
SQL Serverビルドエージェント
• ワークスペースを間違えないために– ワークスペースの切り替えは危険– 作業時・ワークスペース切り替え時には、仮想ドライブを作成す
るバッチ(substコマンド)を必ず実⾏
• 要員の配置変更時にマップをきれいにする– 開発用PCの利用者が切り替わるときは要注意– TF.EXEで削除しないといけなくなる
連動しない!
比較ツールWinMergeWinMergeWinMergeWinMerge
マージツールP4MergeP4MergeP4MergeP4Merge
VSSからTFSへの移⾏
• Windows Azure上のTFS– tfspreview.com でプレビュー評価版が利用可能– インフラ系をWindows Azureにおまかせ– Windows Live Id連携– Test Controllerとの連動もできる
• Microsoft Visual Studio Agent 2012
• クラウド間でのアプリケーションのビルドおよびテストが可能– (バックアップどうする?)
• とってきて入れるだけ• 手順
– VSSから移⾏したいプロジェクトを取得する。– tfserviceにアカウント登録して、チームプロジェクトを作成する。– tfserviceのソース管理に、ソースコードをバインドする。
• 注意– preview版ですので、仕様変更などある可能性あります。
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