2

项目 XML 文件 (*.sqlproj) 一直存在问题。如果文件被添加/更新/更改位置,那么它会自动在一些意想不到的地方添加/删除记录。之后,当有人也更改该文件时,我们会遇到合并它的大麻烦。

我们得出的结论是,我们可以在签入前对其进行排序。我们将按字母顺序对其进行排序,在这种情况下,合并工具会更好地理解它。

所以,我的问题是:

  1. 是否可以在每次签入之前以某种方式重新排列 sqlproj 文件?也许已经有某种选项/工具可以做到这一点?
  2. 还有其他方法可以让开发人员的生活更轻松吗?

更新:

我又遇到了同样的问题。sqlproj 文件被修改了 3 次,我只想将最后一次更改合并到生产中,其他 2 个尚未测试。在合并工具中,我可以选择添加所有这 3 个新对象或保持不变。我不能只选择最后一次更改...

例子:

  1. developerA 创建了 tableA 并签入;
  2. developerB 拿到最新版本的 dev 分支,创建 tableB 并签入;
  3. developerC 获得了最新版本的 dev 分支,创建了 tableC 并签入。 DeveloperC 测试了代码并准备投入生产。他试图将他的代码合并到 QA 并得到冲突,他只能选择进行所有更改。
4

2 回答 2

1

我非常了解您遇到的情况。当您在单个存储库的上下文中发生多个工作流并且您没有共同的升级计划时,通常会发生这种情况(因为所有工作将同时进行 QA 和 PROD)。

我可以想出几种方法来解决这个问题,每个选项都有优点和缺点。

  1. 锁定每个环境,直到一切都可以共同促进。在大多数情况下是不现实的。

  2. 当您准备好升级时,从源环境创建一个升级分支,并将尚未准备好升级到目标环境的东西从升级分支中取出。这使开发人员可以继续工作并能够在不冻结的情况下进行推广。

  3. 混合方法...在准备好推广到测试之前,不要在 Dev 中对任何东西进行源代码控制。然后从那里开始执行选项 #1 或 2。

  4. 创建一个更灵活的生态系统,可以为每个功能分支创建一个环境,以便与其他人一起演示/测试(或至少在开发人员之间分配/轮换足够多的时间以实现相同的目标)。一旦被接受推广。这就是我们目前正在努力的方向,但是当您拥有大量互连的数据库和共享它们的应用程序时,构建基础架构和流程至少可以说有点挑战性(尤其是在微软世界)。

无论如何希望这会有所帮助......

于 2015-07-02T05:28:30.403 回答
0

1 - 你使用什么源代码控制?据我所知,没有任何源代码控制了解 sqlproj 文件的上下文,但这通常不是问题。

2.a - 这不应该是您经常遇到的问题,您是否定期入住/退房?如果不同的开发人员对项目进行大规模更改并且在之前和之后不签出/签入,我只会期望看到问题。

2.b - 您也可能没有正确合并,如果您同时进行两组更改,那么通常没问题。

于 2015-06-15T13:32:09.300 回答