2017-05-05 19 views
0

まず、TFS GITとlinq2sql/entity frameworkデータベースを使用する際に問題があります。問題は、edml.edmxのデザイナーとレイアウトファイルが絶えず変化していることです。これらのファイルの変更をマージすると、複数の競合が発生し、正しく管理されていないとデータが失われることがあります。DBML/EDMXファイルとGIT

デザイナーとレイアウトファイルはユーザー固有のものですが、gitでこれらのファイルを依存ファイルとして無視することはできません。

これらのファイルをマージすることをお勧めします。

+1

代わりにコードベースのソリューションを使用してください! – ErikEJ

答えて

0

私はこの質問が少し古くなっていることを知っていますが、現時点で私にとっては関係ありません。 @ErikEJがコメントで言及したように、おそらくEF Code First(またはその行に沿ったもの)への移行を見るべきでしょう。

これまで述べてきた問題と同じことが言われています。少しの研究の後で、この問題(時にはw/.csprojファイルが発生する)が、Gitのマージドライバで既知の問題であるように思われます。

特に、このような扱いにくいファイルに対しては、私が望むものよりも多くの実践が必要です。モデルの再構築を行っていますが、変更の結果を必ず確認して、何も失うことがないようにしてください。もし興味があるならhttps://haacked.com/archive/2014/04/16/csproj-merge-conflicts/

はまた、{できるだけ小さく、あなたのチェンジを維持するための恥知らずなプラグを挿入}

編集:ここではいくつかの更なる読書です。

編集:私はマージのために "忍耐" diffアルゴリズムを使用していくつかの運があった。それは間違いなくXMLをマージすることで物事をきれいにする。それでもまだかわいいとは言えませんが、あなたはそれを一撃したいかもしれません。

Git merge using recursive strategy and patience optionから、あなたは忍耐アルゴリズムを使用してマージを実行するために

git merge -s recursive -X patience other-branch 

を呼び出すことができます。または--patienceフラグを使ってdiffを実行するだけで済みます。

最後に、忍耐強さアルゴリズムに関する追加の読書をしたり、マージ競合の出力を自分自身で比較することができます。私はそれが全体的に良くて、それを私のグローバル.gitconfigに追加したことが気に入っています。

あなたが興味を持っている場合は、ここにいくつかの外部読書があります。

The patience diff algorithm (external)

TIL: Diffing with Patience (external)

Git Source Code Review: Diff Algorithms (external)は - 忍耐アルゴリズムの作者からの詳細情報へのリンクが含まれていますが、私の企業のプロキシが、現在そこに行くから私をブロックしているので、私はそれらをまだ読んでいません。

関連する問題