在源代码管理中管理Visual Studio Database Designer文件

时间:2011-05-18 20:13:02

标签: c# visual-studio version-control mercurial dvcs

我正在开发一个使用visual studio的GUI DB设计器绘制数据访问层的项目。

我使用mercurial作为我的VCS,但它不应该太重要。每当我在一个分支中更改数据库设计器屏幕,然后在另一个分支中进行另一个更改,并尝试合并这两个分支...我几乎总是得到非常复杂的合并冲突,即使是手工制作也难以弄清楚DB设计器生成的.cs文件。

你是如何处理的?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我认为@Doc Brown答案很棒,这是DVCS的一个常见问题

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

处理二进制文件的能力适用于集中式VCS,因为您具有(有时是有限的)在签出时锁定文件的能力(Checkout-Modify-Checkin工作流程)。

FWIW,这是关于SO的主题的一个很好的讨论。

Binary Files in DVCS