「[[マイクロソフト系技術情報 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]]

**構成管理一般 [#h7576516]

***汎用的なリポジトリ [#n906f8eb]
成果物の一元管理により開発・保守の効率が良くなる。

***業務システム寄りのリポジトリ [#efb05851]
データ項目辞書などを使用することで~
用語の統一化も図ることが出来る。

**ツール [#sc209056]
[[前述>#h7576516]]の汎用的なリポジトリの範囲。

***紹介するツール [#ad69bfdf]
-[[Git(Global Information Tracker)>#t84ddf9f]]
-[[SVN(Subversion)>#zcb21841]]
-[[VSS(Visual SourceSafe)>#w0fb3014]]
-[[TFS(Team Foundation Server)>#xd273af9]]
-[[Git(Global Information Tracker)>#t84ddf9f]]

***異なる点 [#t06e5d58]
-コマンド対比表~
Visual SourceSafeとSubversionの違い - プログラマーな日々~
http://d.hatena.ne.jp/JHashimoto/20110521/1306457767
|アクション|[[VSS>#w0fb3014]]のコマンド|[[SVN>#zcb21841]]のコマンド|h
|リポジトリのファイルをローカルに取得|最新バージョンの取得|更新|
|変更ロックの取得|チェックアウト|なし(ロックをかけない)|
|ローカルとリポジトリ間の差分抽出|プロジェクトを選択して「相違点の表示」|リポジトリとの同期化|
|ローカルの変更をリポジトリに反映|チェックイン|コミット|

-ロック動作の違い~
近年主流となっている[[SVN>#zcb21841]]と[[TFS>#xd273af9]]は、[[VSS>#w0fb3014]]の既定の排他ロックの動作と異なる。

--動作モデル
---排他ロックするツールは、排他ロックによりコンフリクトを防止する(ロックモデル)。
---排他ロックしないツールは、コンフリクトをマージで対応する(マージ修正モデル)。

--動作モデルの変更方法
---[[VSS>#w0fb3014]]2005でも排他ロックを使用しなモードを使用できる。
---[[SVN>#zcb21841]]ではneeds-lock属性を付与することにより排他ロック動作が可能。
>crossroad's Blog Subversionでファイルのロックを強制する~
http://bagineer.blog59.fc2.com/blog-entry-33.html

-ブランチ動作の違い

--[[VSS>#w0fb3014]]上でブランチを作成した場合、
---共有と言う仕組みを使用し、変更が無い限り同じ母体を共有できる共有モデル。
---共有を解除すると、別のファイルとして管理されるようになる。

--[[SVN>#zcb21841]]上でブランチを作成した場合、
---差分の仕組みを使用し、変更が無い限り同じ母体を使用する仕様。
---変更を開始すると、母体からの差分として管理(差分データのみ保持)。

--[[TFS>#xd273af9]]:[[Git>#t84ddf9f]]およびTFVC(未調査)を使用可能

--[[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>#xd273af9]]と比べて機能的に劣る。

**リンク [#t1328294]
-Visual SourceSafe データベース運用ガイド~
http://support.microsoft.com/kb/902053/ja

*TFS(Team Foundation Server) [#xd273af9]

**概要 [#qeb6346b]
TFSを導入することにより、
-バージョン管理システムだけでなく、
-ALM(アプリケーション ライフサイクル管理)ソリューションとしての機能も導入&連携させることができる。
++自動ビルド・システム
++作業項目管理
++プロジェクト管理
++コミュニケーション基盤

***[[VSS>#w0fb3014]]との比較 [#p0531f98]
バージョン管理システム単体では([[VSS>#w0fb3014]]と比べ)以下の機能が追加されている。

-シェルブ
-チェックイン・ポリシー

***連携 [#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>#w0fb3014]]単体の場合 [#l3997d89]
-[[VSS>#w0fb3014]]ライセンス×クライアント台数

***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>#w0fb3014]]、TFSにアクセスする人全てがMSDNのPro以上のエディションを~
持っている場合、別途ライセンスを購入することなく[[VSS>#w0fb3014]]、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

*[[Git]](Global Information Tracker) [#t84ddf9f]

**[[OSSホスティング・サービス]] [#vb17537c]

***[[GitHub]] [#e02191e8]

***[[GitLab]] [#f684f2db]

***[[GitBucket]] [#pc0eb4e6]

*参考 [#w1212abf]
-Microsoft Visual SourceSafe - Wikipedia~
https://ja.wikipedia.org/wiki/Microsoft_Visual_SourceSafe

-Apache Subversion - Wikipedia~
https://ja.wikipedia.org/wiki/Apache_Subversion

-Team Foundation Server - Wikipedia~
https://ja.wikipedia.org/wiki/Team_Foundation_Server

**比較 [#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

-[[TFS>#xd273af9]]・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|

**移行 [#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への移行を行ってみての私的感想と特徴比較 【▲→川俣晶の縁側→ソフトウェア→技術雑記】~
-TFSからgit/Visual Studio Onlineへの移行を行ってみての~
私的感想と特徴比較 【▲→川俣晶の縁側→ソフトウェア→技術雑記】~
http://mag.autumn.org/Content.modf?id=20160616143255

----
Tags: [[:.NET開発]], [[:ツール類]], [[:構成管理ツール]], [[:CI]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS