2016-06-27 11 views
0

私が作業しているFortranコードの2つの枝をマージする必要があります。 Fortranは大文字と小文字を区別していませんでしたが、コードの行の大文字と小文字の区別はありませんでした。そして、ある時点で、すべてを小文字にすることを選択しました。コミットする前に、コードを小文字に変換するスクリプト全体をソースコードに渡します。大文字と小文字を区別しないgit merge

私の問題は、共通の祖先がケースが制御されていない時代に戻る2つのブランチをマージしなければならないということです。そのため、マージするときには、ほとんどのファイルが大文字と小文字の不一致(矛盾します)が発生します。

これは可能でしょうか(そうだと思います...)、どのように非依存のgitをマージするのですか?可能でない場合は、マージ処理中に小文字のスクリプトを共通の祖先で呼び出すことは可能ですか?

多くの感謝!

答えて

0

ElpieKay's answerで十分でしょう。私はおそらく、特に将来の頭痛も軽減する必要があるため、最初に試してみることにします。また、きれいで汚れにくいフィルタではありません。

renormalize
           これは、仮想チェックアウトとcheck-を実行します:あなたはそれで問題を持ち続ける場合

は、しかし、Gitリポジトリの再帰的マージoffers a renormalize strategy-optionがあることに注意してください3ウェイマージを解決する際にファイルの3つのステージすべてのうちの1つを実行します。 このオプションは、異なるクリーン フィルタまたは行末正規化ルールを使用してブランチをマージするときに使用される、 です。詳細については、 異なるチェックイン/チェックアウト属性のブランチをマージする( gitattributes(5))を参照してください。

"クリーン"フィルタを設定して、小文字に変換することができます。 Gitは、すべての3つのステージで、HEADコミットで定義されたフィルタを使用します。現在の(--ours)コミットと他の(--thiers)コミットですでに小文字にしている場合、これは単純にベースバージョンを小文字にします。

.gitattributesを削除するまで、この「クリーン」フィルタはファイルgit add -edに引き続き適用されます。それは望ましい機能かもしれません。 :-)


the gitattributes documentationノートとして、並びにこのため git configノブがあります。

0

マージの前に両方のブランチですべてを小文字にすることをコミットします。

+0

私はそれぞれの支部の頭のためにそれをすることができますが、共通の祖先のために? – janou195

+0

@ janou195ちょうどそれを残す。 – ElpieKay

関連する問題