0

修正や機能を提供したいので、フォークしたオープン ソース プロジェクトがあります。ここまでは順調ですね。

このプロジェクトには、私に固有のファイル configuration.h があります。私はそれをバージョン管理したいと思います。既定のファイルは、プロジェクトによって既にバージョン管理されています。構成を管理するためのより良い方法があることは承知していますが、残念ながら、これらのファイルを上流にプッシュするのに適した方法で保持する必要があります。

この git リポジトリを管理する最もクリーンな方法は何ですか?

私の現在の試みには、構成ブランチをマスターから離れたままにして、それをリベースすることが含まれます。それはすぐに問題になります。もっと良い方法があるはずですか?

4

3 に答える 3

0

推奨される方法は、追跡されている構成と追跡されていない構成が別のファイルに保存されるように、アプリケーションを変更することです。いくつかのアプローチについては、 https://gist.github.com/1423106を参照してください。抜粋:

  • foo.conf の前に foo.local.conf を検索するようにアプリを変更します (または、後で foo.local.conf を読み込み、それらの構成設定で foo.conf をオーバーライドするか、環境変数から構成ファイルの名前を読み取ります)。

  • foo.sample.conf を追跡し、存在しない場合はコンパイル プロセスで foo.conf にコピーします。

  • 特別なスマッジ/クリーン フックを使用して、構成の変更を適用します (または特別な構成ファイル ブランチから取得します)。

  • 構成の変更を特別なブランチに分離するローカル構成ブランチを使用する

  • いかなる状況においても、「変更されていないと仮定する」を使用しないでください。それはあなたが望んでいること、またはあなたが思っていることをしません。それを使うと、涙で終わるだけです。

于 2012-08-24T22:38:04.657 に答える
0

おそらく最もクリーンな方法は、作業用に 2 つのブランチを維持することdevですtestdev構成ファイルを除くすべての作業であり、変更をアップストリームに送信するために使用するものです。個人的な好みに応じて、最新のコミットにtest頻繁にマージdevまたはリベースできます (私はリベースを好みます)。このブランチは上流にプッシュされることはありません。testdev

于 2012-08-22T14:27:49.077 に答える
0

smudge clean hooksのような git ソリューションがあります。他のフックでうまくいくかもしれませんが、あなたの問題はここにはないと思うので、それはあまり良い解決策ではありません。

開発者ごとに異なるコード ファイルは使用しないでください。コード ベースは、バージョン管理された既定のテンプレートと、バージョン管理されていない (.gitignore のおかげで).config.templateマシン上にあるカスタムバージョンを持つ構成ファイルで、コード ベースの外部に格納されているさまざまな構成を処理する必要がありますが、実行時にコードによって使用されます。.config

于 2012-08-22T12:26:32.660 に答える