2010-12-16 10 views
2

git diffに問題があります。私が最初にあなたを歴史に記入させてください。ファイル内のパターンを無視するgit diff

私はちょうど顧客から不評のプロジェクトを受けました。問題は、scmに2つのブランチがあることです。これらの2つの枝は、年齢のためにマージされていない、今ナットそれらをマージする必要があります。変更のほとんどは自明なので、gitによるマージは約30分かかります。

私の顧客は、マージプロセスを自動化できるとは信じていません。したがって、演奏中のコードの4つのバージョン(ベースとバージョンa、ベースとバージョンb、aとbなど)の違いを持つdiffリストを持つことによって、マージを確認したいと考えています。

これも非常に些細なことですが、ここで問題が発生します。これらの間には多くの変更がブランチにあるので、diffリストは非常に長く(それぞれ約50Mb)、リストは役に立たない。今私の顧客は変更をグループ化したいと思っています。

「グループ化された差分」には4つのメイングループがあります。私はgit diffが個々のグループを無視できるようにしたいと思います。

g1:方向が変わったスラッシュがたくさんあります。ですから、私はgitが/と\同様に解釈することを望みます。私はgitが行全体を無視するようにする方法を見つけました。スラッシュが含まれていればその行は無視されますが、スラッシュが来るパスが変更されている可能性があるため、必要ではありません。

g2:この問題は、より多くのシンボルが関わっていることを除いて、上記と非常によく似ています。変更されたログには定型化がたくさんあります。 「æ」が「& aelig;」に変更され、「ø」が「& oslash;」に変更されています。

g3:多くのコメントが変更されました。顧客は、「* /」の一部がマージされていない可能性があると心配しています。私はこれを確認する方法を見ることができません。あなたの専門家のいずれかがアイデアを持っていますか?

g4:上記の内容はすべて記載されていません。これは本当の変化と考えられています。

+0

_only_30 **分**?!?それは簡単なマージのための時間の狂った量です。 – knittl

+0

私はそれのほとんどが*自明だと言いました。私の注意が必要だったいくつかの競合があった;) – user1407209

答えて

0

あなたはdiffを解析し、それらの変更のいくつかを取り除くか、または消耗するものを書くことができます。いくつかの正規表現の魔法があなたを助けるかもしれません。私はこれがg1とg2に最も当てはまると考えています。

g3についてどうすればよいか分かりません。

+0

私は後処理を避けることを望んでいた。私は比較を超えて使用していましたが、比較ルールを設定するオプションがありました。私はそれを使ってログファイルのタイムスタンプを無視しました。私はdiffで似たようなことを望んでいました。 私はg3についてあなたに同意します。私はそれについて何もするつもりはないと思います。 – user1407209

関連する問題