2017-05-05 77 views
0

我们首先使用TFS GIT和linq2sql /实体框架数据库时遇到问题。问题在于edml.edmx设计器和布局文件不断变化。合并这些文件的更改会导致多次冲突,并且如果管理不当,有时会丢失数据。DBML/EDMX文件和GIT

我意识到设计器和布局文件是用户特定的,但不能忽略git中的这些文件,因为它们是依赖文件。

有没有人有合并这些文件的良好做法的任何建议。

+1

改为使用基于代码的解决方案! – ErikEJ

回答

0

我知道这个问题有点陈旧,但这一点与我目前相关。正如@ErikEJ在评论中提到的那样,您应该考虑迁移到EF Code First(或者沿着这些方向)。

这就是说,我们遇到了上面提到的同样的问题。经过一番研究后,似乎这个问题(偶尔也会发生w/.csproj文件)是一个已知问题,它显然没有任何关注。

它绝对保证比我想要的更实际操作,特别是对于这样一个笨拙的文件。我们已经开始重建模型,但是您必须查看更改的结果以确保您不会丢失任何内容。如果你有兴趣https://haacked.com/archive/2014/04/16/csproj-merge-conflicts/

此外,{插入插头无耻保持您的变更尽可能小}

编辑:下面是一些进一步的阅读。

编辑:我有一些运气使用“耐心”差异算法进行合并。它绝对清理与合并XML的东西。它仍然不漂亮或太棒了,但你可能想要尝试一下。

Git merge using recursive strategy and patience option,您可以拨打

git merge -s recursive -X patience other-branch 

执行使用耐心算法合并。或者您可以简单地使用--patience标志进行差异化。

最后,您可能希望对耐心算法做一些额外的阅读或自己比较合并冲突的输出。我发现我更喜欢整体,并将其添加到我的全局.gitconfig中。

如果你有兴趣,这里有更多的外部阅读。

The patience diff algorithm (external)

TIL: Diffing with Patience (external)

Git Source Code Review: Diff Algorithms (external) - 包括指向从耐心算法的作者的详细信息,但我公司代理当前正在阻止我去那里,所以我没有看过他们没有。