特定のレイアウトのテキストファイルの種類のカスタムマージドライバがあります。 (これは基本的にgit-merge-changelog
と同じ問題を解決します:物事が同じ場所に追加されたとき、それらを置く順序を決めるルールがあります)Gitカスタムマージドライバを組み込みドライバに置き換えます
このマージドライバは経験則に基づいており、複雑すぎる。失敗したら、gitのデフォルトのテキストファイルの処理に戻りたいと思います。
私は.gitattributes
を設定している:
myfile merge=my-driver
と.gitconfig
:
[merge "my-driver"]
name = My merge driver for myfile
driver = my-merge-driver %O %A %B
私のカスタムドライバは競合を解決することができますマージするときこれが細かいです。ドライバプログラムが競合を解決できないときは、0以外のコードを返し、%A
は変更しません。これによりgitは矛盾を報告しますが、現在のバージョンのファイルをそのまま残します。代わりに、gitに組み込みのテキストマージドライバを実行させます。
カスタムマージドライバはどのように使用できますか?失敗した場合は、組み込みドライバをフォールバックとして使用しますか? (少なくとも、「通常」の双方向マージ用)
これは正しい方法です。これは文書化されておらず、タコのマージを実行している場合は落とし穴があります。なぜなら、それぞれの頭に1つずつ、複数の環境変数が存在するからです。他の質問にも私は答えます。 – torek