我的开发团队正在 TFS 中实现分支和合并。我们的软件包含在一个解决方案中,其中嵌入了许多项目。其中一个项目包含所有 SQL 脚本,以保持我们的数据库版本。
我们在合并期间无法弄清楚如何处理数据库项目。例如,每当开发人员需要对数据库进行任何更改(添加/删除存储过程、创建表、添加索引等)时,我们都会创建一个脚本文件。每个文件都以版本号命名。例如,如果签入的最后一个脚本文件名为 4.1.0.1,我会将新脚本命名为 4.1.0.2。我们使用这些文件名将软件版本与它需要运行的相应数据库版本相匹配。
假设我从我们的主代码分支创建了一个分支来执行新功能。我完成了所有的编码,并将我的所有 SQL 更改放在一个脚本文件中,并将其添加到 DB 项目中。显然,我可以从主代码分支合并到我的新分支中,以确保我拥有最新的 SQL 脚本列表,以便我可以正确命名它。问题是一天中会多次添加新的脚本文件,我们认为我们将与脚本命名发生大量合并冲突。
我想以某种方式自动执行此操作,因此开发人员可以添加一个具有随机名称的脚本,并且在合并期间有一个钩子或事件将确定哪些文件是主代码库的新文件以及如何正确命名这些文件,因此开发人员不必担心。例如,我可以创建一个名为“new_script.sql”的新文件,当我将其合并回主代码分支时,它将重命名为 4.1.0.2
以前我使用 RoundHouse 之类的工具来处理所有 SQL 版本控制,但是在我目前的工作中,我们使用 Sybase SQL Anywhere 10,我无法找到类似于 RoundHouse 的可以与 Sybase 一起使用的东西。
谁能指出我在 TFS 合并期间如何自动执行任务的正确方向?我假设这可以使用 PowerShell 完成,但我担心大多数开发团队不熟悉 PowerShell,我希望能够在开发人员无需离开团队资源管理器窗口的情况下自动执行此任务。
任何帮助是极大的赞赏!
谢谢!