2010-11-24 6 views
4

git diffと一緒に使用するスクリプトを開発して、ファイル内を単に移動した行を 'フィルタアウト'できるようにしています。 Visual Studio 2008は、Designerファイルを使用する際に苦労しています。時々、ファイル全体を別の順序で書き直すことを主張するようです。これにより、ファイルの実際の変更を確認することが困難になります。 git diffの出力を調整するスクリプトにgit diffを配備しています。出力から行を削除するか、+/-を別の記号で置き換えて移動を示すことができますが、使用する記号はわかりません。Git Diff - 行の移動を指示する

+2

私はこの事業に興味がありますが、そこに質問を見つけるのは難しいです。あなたは何を求めているのですか? – grossvogel

+0

質問は私にはあまり明確ではありません。移動したラインを一般的にフィルタリングする方法を尋ねている場合、それは既に:http://stackoverflow.com/questions/1380333/highlighting-added-deleted-lines-ignoring-moves-in-a-patch-news-training-adp-new-patch-news.aspで質問されています。ファイル –

答えて

0

これは質問に対する回答ではなく、説明されている問題の可能な代替ソリューションです。

私はVisual Studio 2008やデザイナーのファイルに精通していませんが、別のプログラムで生成されたファイルをgitに保存したいというソリューションに慣れました。いくつかのファイルの行の順序はまったく重要ではありませんでした。他のファイルでは、順序は重要ではありませんが、ネストされたデータ構造が含まれているため、並べ替えが不十分でした。

私の解決策は、コミットされる前にファイルの内容を変更するためにgitのフィルタを利用することでした。これは2つの部分で構成されています。まず、ファイルに.gitattributesファイルを使用してフィルタを割り当てる必要があります。

次に、フィルタの動作を設定ファイルで定義する必要があります。これはユーザ設定~/.gitconfig、またはreposの設定.git/configで行うことができます。これはローカルのみで、他の人と自動的にリポジトリの一部として共有されるわけではありません。

[filter "sort"] 
    clean = sort 
    smudge = cat 

この単純なフィルタの結果は、ファイルではなく、それらを作成したプログラムからランダムな順序にある​​線で、レポにコミットされたとき、彼らはアルファベットや追加、削除だけを選別したということでした差分に現れた変更。

私は、2つの異なるファイルタイプが2つあり、単純なものと複雑なものがあると述べました。ネストされたデータ型(特定のLuaテーブル)を含む複雑なものについては、ファイルの内容を読み込み、各ネストされたセクションをソートし、振る舞いを変更することなくソートされた結果を出力するスクリプトを作成しましたデータが後で使用されたときに発生します。

関連する問題