複数のマシンと複数のプラットフォーム間で簡単に共有できるように、私のアプリケーションユーザー構成ファイルの多くはgitリポジトリに保存されています。これらの構成ファイルには、.gitconfig
には、復帰改行文字を処理するための次の設定が含まれています。
[core]
autocrlf = true
safecrlf = false
これらの設定は、あいまいなエラーの原因となるGNU/Linuxプラットフォームにも適用されます。
これらのプラットフォーム固有の構成ファイルの違いを処理するためのいくつかのベストプラクティスは何ですか?
この問題は、プラットフォームごとにブランチを用意し、共通のものをマスターに保持し、マスターが前進するときにプラットフォームのブランチとマージすることで解決できると思います。この問題の簡単解決策があるかどうか疑問に思っていますか?
私は質問でその種の設定(crlf
)を広範囲にわたってレビューしました:
コードでgit設定を配布する.
結論は:
*。Java + crlf *。txt + crlf ...
git status
、シェル環境、およびsvn import
でのこのような変換のさまざまな副作用のため、それを必要としない種類のファイルの変換は行わないでください(「- コードでgit設定を配布する リンクと参照).crlf
変換を完全に回避してください。今、プラットフォームごとの設定の特定の問題に関して、特にプログラムに関連しないデータ(つまり、これらの設定)では、ブランチが常に適切なツールであるとは限りません開発中のものとは関係なく、VCSのみが開発の履歴を保存します)
質問で述べたように Git:プロジェクトの2つのブランチを維持し、共有データのみをマージするには? :
システムに依存するコードを別のディレクトリに配置し、ビルドシステム(Makefilesまたは使用するもの)のクロスプラットフォームの依存関係を処理すると、作業が大幅に簡素化されます。
この場合、ブランチはシステム依存のコードに使用できますが、適切な.gitattributes
ファイルをビルドして、リポジトリに応じて適切な設定を適用できるスクリプトを使用して、サポートツールのシステム依存の設定用のディレクトリをお勧めします展開プラットフォーム。
決してautocrlf
をオンにしないでください。頭痛と悲しみだけを引き起こします。
ウィンドウで\r\n
を使用する言い訳はありません。まともなエディタはすべて(定義により)\n
を処理できます。