2017-05-05 75 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) - 包括指向從耐心算法的作者的詳細信息,但我公司代理當前正在阻止我去那裏,所以我沒有看過他們沒有。