0

我的开发团队正在实施TFS中的分支和合并。我们的软件包含在一个解决方案中,嵌入了许多项目。其中一个项目包含所有SQL脚本以保持我们的数据库版本。在TFS合并期间自动重命名文件

我们无法弄清楚在合并过程中如何处理数据库项目。例如,只要开发人员需要对数据库进行任何更改(添加/删除存储的proc,创建表,添加索引等),我们都会创建一个脚本文件。每个文件都以一个版本号命名。例如,如果检入的最后一个脚本文件命名为4.1.0.1,我将命名我的新脚本4.1.0.2。我们使用这些文件名来将软件版本与其需要运行的相应数据库版本进行匹配。

说我从我们的主代码分支创建一个分支来做一个新功能。我做了所有的编码,并将所有SQL更改放入一个脚本文件中并将其添加到数据库项目中。显然,我可以从主代码分支合并到我的新分支中,以确保我拥有最新的SQL脚本列表,以便我可以正确命名它。问题是新的脚本文件在一天中被添加了好几次,我们认为我们将与脚本命名产生大量的合并冲突。

我想以某种方式自动执行此操作,因此开发人员只需添加一些带有一些随机名称的脚本,并且在合并过程中会有一个挂钩或事件来确定哪些文件是主代码库的新增内容,如何正确命名这些文件,以便开发人员不必担心。例如,我可以创建一个名为“new_script.sql”的新文件,当我将它合并到主代码分支时,它将被重命名为4.1.0.2

以前我使用过RoundHouse等工具照顾所有的SQL版本管理,但是在我目前的工作中,我们使用Sybase SQL Anywhere 10,而且我还没有能够追踪类似于可以与Sybase一起工作的RoundHouse的东西。

任何人都可以在正确的方向指向我如何在TFS合并期间自动执行任务吗?我假设这可以使用PowerShell完成,但是我担心的是大多数开发团队不熟悉PowerShell,并且我希望能够在不需要开发人员离开团队资源管理器窗口的情况下自动执行此任务。

任何帮助,非常感谢!

谢谢!

回答

0

我认为你是绝对正确的,如果你继续使用这个策略并引入分支,你会得到命名冲突。

我认为你有两个选择:

  1. 在树枝上添加这些文件,将它们添加前缀的分支名。例如。 branch_0.1.sql和branch_0.2.sql。然后,当您将分支合并回树干时,您必须将这些分支重命名为正确的名称。你可以写一个程序来为你做这件事,而且会很简单。 为了使这更简单,您只能为每个分支创建一个SQL文件,并且只需要添加到该SQL文件。那么即使你合并,这也是一个非常简单的过程。

  2. 沟通自我版本化的文件。 Tfs是版本控制。没有太多需要自己版本的文件。我们使用Visual Studio数据库项目来进行数据库版本控制,这种方式绝对没问题。我想如果你改变了这个,你需要在你的部署策略中改变一些东西。

我希望这有助于。