在源代码管理中管理 Visual Studio 数据库设计器文件

本文关键字:管理 数据库 文件 Studio 源代码 Visual | 更新日期: 2023-09-27 17:56:45

我正在做一个项目,该项目使用Visual Studio的GUI DB设计器来绘制数据访问层。

我使用汞作为我的VCS,但这应该无关紧要。每当我在一个分支中对数据库设计器屏幕进行更改,然后在另一个分支中进行更改,并尝试合并两个分支时......我几乎总是会遇到非常复杂的合并冲突,即使在数据库设计器生成的.cs文件中手动也很难弄清楚。

你如何处理这个问题?

在源代码管理中管理 Visual Studio 数据库设计器文件

分支/合并数据库差异不适用于文本差异/合并工具。有一些特殊的工具,如ERwin(见 http://erwin.com/),可以处理这个问题,但这些工具很昂贵,可能不容易集成到你的VCS中。

我认为使用Visual Studio DB设计器时的最佳选择是完全避免分支。或者不要使用数据库设计器设计数据库。最好为您的数据库提供一个或多或少简单的描述文件,并通过手写生成器从中生成您需要的其他所有内容。

我认为@Doc布朗的答案是一个很好的答案,这是DVCS的常见问题

鉴于 DVCS 的复制-修改-合并工作流程,您最好使用文本格式(如 Brown @Doc所述),或者开发一个流程/约定,允许您将更改传达给团队的其他成员,这样您在尝试更新/拉取时就不会互相踩踏。

处理二进制文件的能力与集中式 VCS 配合得很好,因为您具有(有时有限的)在签出时锁定文件的能力(签出-修改-签入工作流)。

FWIW,这是关于 SO 主题的精彩讨论。

DVCS 中的二进制文件