2009-12-03 8 views
8

私の開発グループは、バージョンコントロール用にVisual Source Safeを使用しています。この選択は元々、コストとVisual Studioとの緊密な統合のために行われました。SQL Serverのバージョン管理ですか?

私たちのリポジトリが成長したので、Source Safeは実際にその限界を示し始めており、私たちは別の解決策に移行することを検討しています。議論のためには、Team Foundation Server、Subversion、Git、Mercurialがあります。

私たちは主にデータショップですので、SQL Server 2005/2008のプロジェクトを簡単にバージョンアップすることができます。これは、Source SafeとTeam Foundation Server(Microsoft SQL Server Management Studioとの統合)を使用する利点の1つです。

誰かがSubversion、Git、またはMercurialでSQL Serverのバージョニングを経験していて、これらのシステムのそれぞれについて確かな賛否両論を提供できるかどうか、またそれらの実装方法について知りたいと思います。

答えて

1

IMHOを考慮する必要があるのはGitとMercurialだけですが、他の2つは古すぎます。現代のSCMはgitのようにブランチを扱うべきです。

gitと水銀の比較については、 http://rg03.wordpress.com/2009/04/07/mercurial-vs-git/,http://www.russellbeattie.com/blog/distributed-revision-control-systems-git-vs-mercurial-vs-svnを参照してください。

私はSSMS SCMの統合に関する過去の経験はありませんが、AFAIKでは上記のいずれのシステムも(TFS以外はありません)1つ持っています。私はそれを不利益と呼んでいません。例えば、GUIは、このような統合よりも楽しいツールと言えるでしょう。これは、SVN(Ankhを使用したVSの統合)からGit(全く統合されていない)に移行するとき、少なくとも私のケースです...

0

TFSにはキーワード拡張がいくつかあります。ソースファイル内にリビジョンキーワード情報を埋め込まない場合、それは懸念すべきではありません。

1

Mercurialは、DVCSが行く方法だと思うならば、VisualHGとVSの統合を持っています。私たちはそれを私たちのC++/C#プロジェクトに使用しています。 (OTOH、私は完全な統合を一度も使用していないので、詳細なVC作業のためにエクスプローラ拡張機能やコマンドラインで作業しています。)

0

非常に多くの選択肢があります。 SQL Server Management Studio(SSMS)は、任意のMicrosoftソースコード管理インターフェイスMSSCCIプロバイダーとの統合をサポートします。したがって、MSSCCI互換のプロバイダを備えたソース管理システムに検索を広げることができます。

SSMSでは、ツール - >オプション - >ソース管理をチェックして、システムにどのプロバイダプラグインがインストールされているかを確認してください。

たとえば、Team Foundation ServerとSQL Management Studioとの統合は、TFS MSSCCIプロバイダーが提供しています。 CVS/Subversion( "Aigenta Unified SCC")などのプロバイダがあると思います。

賛否両論のリストについては、互換性のあるプロバイダがあれば、より多くの聴衆に質問を公開することができます。私の主な経験は、VSS、TFS、Subversionです。それは本当にあなたのチームと環境に降り立ちます。あなたはあなたの環境をもっと詳しく説明できますか?

など。

  • CI(継続的インテグレーション)を確立することに興味がありますか?
  • 自動ビルド/自動バージョン管理?
  • 複数の環境をサポートしていますか?
  • 構成管理?
  • あなたはどんなチームサイズですか?多くのマージ/分岐などがありそうですか?
  • 既にバグ追跡システムを導入していますか(TFSのロールアウトの一環として作業項目/バグ追跡を取得していますか?)
5

私の正直な答えは、あなたがそれを避けることができるなら、あなたのデータベースツールとSCMとの統合を行わないことです。可能であれば、ファイルシステムを使用してください。それは痛みになる統合のもう一つの層です。小さな別個のツールは、巨獣よりも優れています。

我々は、次の邸宅で一緒にSubversionとSQL 2005を使用します。

  • 私たちはTortoiseSVNのみを使用します。 VS/SSMS統合はまったくありません。
  • 私たちは "すべてを自動化する"という原則を持っているので、GUIツールを使用して作業を行うことは決してありません。
  • 私たちはすべてのスクリプトをSVNの中にコードと共に保存します。コード、スキーマおよびスクリプトは一緒にバージョン管理されます。
  • スキーマの変更は、アプリケーション、つまり000-create-table-users.sqlの順に番号が付けられます。各環境に展開されている最大スクリプト番号を書き留めます。各スクリプトは、次のデータベースr番号への移行を実行します。デプロイするときに、ソースをチェックアウトし、最後のバージョン番号から最高の番号までのすべてのスクリプトを実行します。
  • スキーマ以外のスクリプト(sprocs/views)はすべて冪等します(同じ結果で何度も実行できます)。それらは、私たちが書いたnantプラグインを介して適用されます。これらは、導入するたびに置き換えられます。あなたの意見をリフレッシュすることを忘れないでください!
  • 私たちはNHibernateを使用しているので、可能な限りスクリプトを避けるので、スクリプトのバージョン管理には問題が少なくなります。

この構造から、重要なマシン上の任意の時点で、環境とデータベースを再作成できます。

私たちは単体テストには使用しませんが、私たちはNHibernateスキーマ生成を使用してSQLiteデータベースの上でこれを行います。

私たちが遭遇した唯一の否定的な点は、開発者がプロ​​セスを遵守していることを確認することでした。放牧猫は非常に適切な記述です。

2

これはあなたのための便利なツールかもしれません: http://www.liquibase.org/

それはどのようなシステムでバージョン管理に簡単だし、健全な方法であなたのアップグレード・スクリプトを管理しているので、それが設計されています。

4

Visual Studio Team System 2008データベース版(コードネーム "DataDude")が必要です。

これは、あなたの心を吹き飛ぶような方法であなたのデータベースオブジェクトをバージョンすることができます。 (顧客サイトを特定のバージョンにアップグレードする、またはデータを破壊することなく以前のバージョンにロールバックするなど)。

Gert Drapersのブログで、this postから始まる機能をチェックしてください。

ポッドキャストが好きな場合は、Chris Sells in show 494でDotNetRocksを聞いてください。

DataDudeを使用しているときに、ソース管理用のTFSに限定されているかどうかはわかりませんが、Visual Studioファミリの「過小評価」のメンバーです。

+1

"DataDude"はVisual Studio 2008以降の追加バージョンです。これはTFSに依存しません(実際にはプロジェクトタイプのみです)。あなたはそれについてもっと読むことができますhttp://stackoverflow.com/questions/169828/what-are-the-real-benefits-of-visual-studio-team-system-database-edition-gdr – RobS

1

これで、SSMSと統合されたSQLソースコントロールにVSSサポートが追加され、データベース開発のための完全に統合されたソースコントロールが提供されました。これを試してみるには、 http://www.red-gate.com/MessageBoard/viewtopic.php?t=12265

関連する問題