「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>開発ツール]] * 目次 [#d61c9940] #contents *概要 [#f0e058ce] 主要な構成管理ツールについて説明します。 -参考:[[SVN vs Git vs TFS]] **ツール [#sc209056] ***紹介するツール [#ad69bfdf] -[[Git(Global Information Tracker)>#t84ddf9f]] -SVN(Subversion) -VSS(Visual SourceSafe) -TFS(Team Foundation Server) ***異なる点 [#t06e5d58] -コマンド対比表~ Visual SourceSafeとSubversionの違い - プログラマーな日々~ http://d.hatena.ne.jp/JHashimoto/20110521/1306457767 |アクション|VSSのコマンド|SVNのコマンド|h |リポジトリのファイルをローカルに取得|最新バージョンの取得|更新| |変更ロックの取得|チェックアウト|なし(ロックをかけない)| |ローカルとリポジトリ間の差分抽出|プロジェクトを選択して「相違点の表示」|リポジトリとの同期化| |ローカルの変更をリポジトリに反映|チェックイン|コミット| -ロック動作の違い~ 近年主流となっているSVNとTFSは、VSSの既定の排他ロックの動作と異なる。 --動作モデル ---排他ロックするツールは、排他ロックによりコンフリクトを防止する(ロックモデル)。 ---排他ロックしないツールは、コンフリクトをマージで対応する(マージ修正モデル)。 --動作モデルの変更方法 ---VSS2005でも排他ロックを使用しなモードを使用できる。 ---SVNではneeds-lock属性を付与することにより排他ロック動作が可能。 >crossroad's Blog Subversionでファイルのロックを強制する~ http://bagineer.blog59.fc2.com/blog-entry-33.html -ブランチ動作の違い --VSS上でブランチを作成した場合、 ---共有と言う仕組みを使用し、変更が無い限り同じ母体を共有できる共有モデル。 ---共有を解除すると、別のファイルとして管理されるようになる。 --SVN上でブランチを作成した場合、 ---差分の仕組みを使用し、変更が無い限り同じ母体を使用する仕様。 ---変更を開始すると、母体からの差分として管理(差分データのみ保持)。 --TFS:未調査 --[[Git>#t84ddf9f]]:分散型バージョン管理システムであり、結構違うので、比較しません。 **構成管理一般 [#h7576516] ・・・ *[[Git]](Global Information Tracker) [#t84ddf9f] *SVN(Subversion) [#zcb21841] **概要 [#ve9ddfad] ***サーバ [#febe42a4] -集中型(クライアント・サーバ型) -ファイル共有だけではなくHTTP(WebDAV)でもアクセスできる。 ***クライアント [#qf0a3d1b] -TortoiseSVNが使用できる。 --IDEとの連動が無くても十分に使用できる。 -IDEアドオンとしては以下のものがある。 --Eclipse:Subversive --Visual Studio:AnkhSVN -DiffツールのWinMergeと連動させることができる。 --WinMergeインストール時にTortoiseSVN側に差分ツールの設定までしてくれます。 --メモ 【Subversion】TortoiseSVNの差分表示時にWinMergeを使う【WinMerge】~ http://ratememo.blog17.fc2.com/blog-entry-911.html **リンク [#z33e5cf4] -Tortoise SVNの使い方を覚えてもらうためのページ~ (初級,中級) - 主に言語とシステム開発に関して~ http://d.hatena.ne.jp/language_and_engineering/20110114/p1 *VSS(Visual SourceSafe) [#w0fb3014] **概要 [#e439c2c5] ***サポート [#rcd76e28] 既に旧バージョンとなっており、サポートが切れている。 -マイクロソフト プロダクト サポート ライフサイクル~ http://support.microsoft.com/lifecycle/?LN=ja&c1=501 --VSS6(延長も含めてサポート切れ) --VSS2005(メインストリーム:2012/07/10に終了、延長:2017/07/11) -単体ライセンス提供終了~ [Information] Visual SourceSafe 単体ライセンス提供終了のお知らせ~ - Visual Studio サポート チーム blog - Site Home - MSDN Blogs~ http://blogs.msdn.com/b/jpvsblog/archive/2011/12/22/information-visual-sourcesafe.aspx >2011年12月末日をもって、Visual SourceSafe 2005 (以下、VSS 2005)の単体ライセンスの提供を終了(MSDNで入手・使用可能) ***問題点 [#wd9159ff] -ユーザ毎にライセンス料がかかる -機能面 --オフラインでは基本的にチェックアウトできない。 --LAN上でのファイル共有をベースとしていて、それ以外の環境(Internet経由等)では使えない。 --TFSと比べて機能的に劣る。~ ~ TFS・VSS比較表~ 出典:Microsoft Visual Studio:一歩先を行くバージョン管理~ http://www.microsoft.com/ja-jp/dev/campaign/vsstotfs/default.aspx ||Team Foundation Server 2010|Visual SourceSafe 2005|h |アーキテクチャ|● N 階層構造で DB を分離可能。&br;● リポジトリには SQL Server を使用|● 2階層構造。&br;● リポジトリに Windows の共有フォルダを使用| |遠隔地からのアクセス|● HTTP 経由でのリモートアクセス&br;● 遠隔地オフィスにバージョン管理用のキャッシュが設置することでネットワーク負荷を軽減&br;● 専用ツール以外にも Web ブラウザによるアクセス機能をサポート|専用ツールから HTTP 経由による簡易リモートアクセス| |セキュリティ|● 多重防御による完全なセキュリティ構造&br;● プロジェクトをはじめ、ファイルレベルまでアクセス権の設定が可能|● リポジトリにアクセスするための権限設定のみ&br;● 共有フォルダは Explorer などで読み取り可能| |信頼性|SQL Server のストアドプロシージャを採用しており、&br;操作失敗時にはロールバックなどで既存内容を確実に維持|● トランザクション処理が非サポートであるため操作失敗時などにロールバックができない&br;● チェックイン時に DB 容量の確認を行わないため、稀にリポジトリが破損することがある| |スケーラビリティ|● 同時使用ユーザーは 2000 名以上で設計&br;● DB 容量の制限は特にない (SQL Server Express を選択の場合は、その制限に依存)|● 同時使用ユーザーは 20 名程度で設計&br;● DB 容量の制限は 3 ~ 5 GB| **リンク [#t1328294] -Visual SourceSafe データベース運用ガイド~ http://support.microsoft.com/kb/902053/ja *TFS(Team Foundation Server) [#xd273af9] **概要 [#qeb6346b] TFSを導入することにより、 -バージョン管理システムだけでなく、 -ALM ソリューションとしての機能も導入&連携させることができる。 ++自動ビルド・システム ++作業項目管理 ++プロジェクト管理 ++コミュニケーション基盤 ***VSS都の比較 [#p0531f98] バージョン管理システム単体では(VSSと比べ)以下の機能が追加されている。 -シェルブ -チェックイン・ポリシー ***連携 [#y0bb8ba8] -Eclipse~ Team Explorer Everywhereを使用すればEclipseからアクセスすることもできる。 -[[Git>#t84ddf9f]]~ また、バージョン管理システムとして[[Git>#t84ddf9f]]を使用することもできる。 --Team Foundation Server入門Vol7:Gitを利用する~ 眠るシーラカンスと水底のプログラマー~ http://coelacanth.jp.net/team-foundation-server%E5%85%A5%E9%96%80vol7git%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B/ **費用の違い [#a1f22230] ***VSS 単体の場合 [#l3997d89] -VSS ライセンス×クライアント台数 ***TFS 単体の場合 [#o6c58c4d] -CAL×クライアント台数 -サーバ・ライセンス --Windows Server --SQL Server、TFS -SQL Serverに無償のExpressを使用した場合 --データベースサイズがExpress Edition では 4GBytes となる。 --SQL Server 2008R2からExpress Editionでも10Gの容量まで。 ***MSDN を使っている場合は [#deb95bbe] -Pro 以上のエディションで CAL は付属する。 -サーバライセンスも MSDN の範囲で使用できる。 -従って、VSS、TFSにアクセスする人全てがMSDNのPro以上のエディションを~ 持っている場合、別途ライセンスを購入することなくVSS、TFSを利用できる。 ***TFS Express [#ha5f31be] -TFS 2012から、5人まで無償で使用可能なTFS Expressの提供が開始された。~ VS Expressは、Team Foundation Server への接続なので全てExpressでの構築も可能。 -連載:いまどきのソース・コード管理:~ 第1回 TFS Expressで始めるソース・コード管理 (1-3) - @IT~ http://www.atmarkit.co.jp/ait/articles/1303/01/news082.html -Visual Studio と Visual Studio Express 2012 for Web の比較~ http://msdn.microsoft.com/ja-jp/library/ms349441.aspx **クライアント・ツール [#m2340c34] Vusial Studioのチーム・エクスプローラからのソースのアクセスが基本になる。 Visual Studio 以外のツールでは、 -コマンドラインツール (tf コマンド) -Eclipse プラグイン(Team Explorer Everywhere) からのソース管理が可能となっています。~ その他のGUIツールに関しては見つけることができませんでした。 **参考 [#t39fc9e2] ***@IT [#pc538533] -チーム開発環境を無理なく導入するには? - @IT~ http://www.atmarkit.co.jp/fdotnet/vstfsintroduce/vstfsintroduce01/vstfsintroduce01_03.html -Team Foundation Server 2010の自動ビルドを使ってみよう - @IT~ http://www.atmarkit.co.jp/fdotnet/introtfs/introtfs04/introtfs04_01.html ***Microsoft [#h0c09575] -Microsoft Visual Studio:一歩先を行くバージョン管理~ http://www.microsoft.com/ja-jp/dev/campaign/vsstotfs/default.aspx -Visual Studio Team Foundation Server 2010 によるソースコード管理入門~ http://download.microsoft.com/download/A/C/5/AC56DA05-5AEA-4118-B2F9-83C4E70834F1/TFS2010_SCM.pdf *参考 [#w1212abf] **比較 [#a009b07e] -Git と TFS との比較と使用感 | Remember The Time~ http://www.remember-the-time.xyz/2015/01/git-tfs.html -連載:TFVC vs Git - @IT~ http://www.atmarkit.co.jp/ait/subtop/features/dotnet/app/tfvcgit_index.html **移行 [#f4fc19f1] -Visual SourceSafe からの移行~ http://msdn.microsoft.com/ja-jp/library/ms253060.aspx -VSS ユーザーがゆるやかに Git に移行するためのゆるいガイド – エバンジェリズムブログ~ https://www.evangelism.jp/articles/vss-to-git-with-sourcetree/ -TFSからgit/Visual Studio Onlineへの移行を行ってみての私的感想と特徴比較 【▲→川俣晶の縁側→ソフトウェア→技術雑記】~ http://mag.autumn.org/Content.modf?id=20160616143255 ---- Tags: [[:.NET開発]], [[:ツール類]], [[:構成管理ツール]], [[:CI]]