私の開発チームは、TFSでの分岐とマージを実装している最中です。私たちのソフトウェアは1つのソリューションに含まれており、多くのプロジェクトがその中に組み込まれています。それらのプロジェクトの1つには、データベースのバージョン管理を維持するためのすべてのSQLスクリプトが含まれています。
マージ中にデータベースプロジェクトを処理する方法を理解するのに問題があります。たとえば、開発者がデータベースに変更を加える必要がある場合(ストアドプロシージャの追加/削除、テーブルの作成、インデックスの追加など)、スクリプトファイルを作成します。各ファイルにはバージョン番号が付けられます。たとえば、チェックインされた最後のスクリプトファイルの名前が4.1.0.1の場合、新しいスクリプトに4.1.0.2という名前を付けます。これらのファイル名を使用して、ソフトウェアのバージョンを、実行する必要のある対応するデータベースのバージョンと照合します。
新しい機能を実行するために、メインコードブランチからブランチを作成するとします。すべてのコーディングを行い、すべてのSQL変更を1つのスクリプトファイルに入れて、DBプロジェクトに追加します。明らかに、メインのコードブランチから新しいブランチにマージして、SQLスクリプトの最新のリストがあることを確認し、正しく名前を付けることができます。問題は、新しいスクリプトファイルが1日に数回追加されることであり、スクリプトの名前付けとのマージの競合が大量に発生すると思われます。
どういうわけかこれを自動化したいので、開発者はランダムな名前のスクリプトを追加するだけで、マージ中にメインコードベースに新しいファイルと正しい名前を付ける方法を把握するフックまたはイベントがあります開発者がそれについて心配する必要がないようにそれらのファイル。たとえば、「new_script.sql」という名前の新しいファイルを作成するだけで、それをメインのコードブランチにマージすると、4.1.0.2に名前が変更されます。
以前は、RoundHouseなどのツールを使用してすべてのSQLバージョン管理を処理していましたが、現在の仕事ではSybase SQL Anywhere 10を使用しており、Sybaseで動作するRoundHouseに似たものを追跡できませんでした。
TFSマージ中にタスクを自動化する方法について、誰かが私を正しい方向に向けることができますか?これはPowerShellを使用して実行できると思いますが、私の懸念は、開発チームのほとんどがPowerShellに慣れていないことであり、開発者がチームエクスプローラーウィンドウを離れることなくこのタスクを自動化できることを望んでいました。
どんな助けでも大歓迎です!
ありがとう!