Gentooでは、パッケージに起因する/ etcへの変更を管理するツール(dispatch-confと呼ばれます)はrcをサポートして変更を追跡しますが、それはあまり強力ではありません。
git
特に、異なるブランチを使用することで、可能な限り異なるディストリビューションで/ etcをできるだけ同じ場所に保持しながら、可能な限り同じ場所に置くことができるため、/ etc経由で/ etcをバージョン管理する傾向があります(明らかに失敗する一部の地域では、Apache設定たとえば、異なるディストリビューション間で本当に異なります)。それはこのように動作します:
私は私の持っているmaster
私のデフォルトの設定ファイルでレポを。今、私は新しいディストリビューションに連絡しているので、ディストリビューションmaster
の名前(この例ではdebian)に基づいたブランチに基づいて新しいブランチを作成します。Debianはいくつかの設定ファイルを私のmaster
とは別の場所に保存するので、私はgit mv file new_loc
。そして、すべてが大丈夫です。master
特定のconfigディレクティブを追加したため、そのファイルに切り替えて変更します。ブランチにマージmaster
すると、debian
移動したファイルが変更されるため、基本的には、master
ブランチ変更し、「配布」の変更をマージするだけですブランチ(通常、ディストリビューションと目的のブランチが混在する傾向があります。debianサーバーはdebianワークステーションと明らかに違いがありますが、機能は引き続き動作します)。
したがって、基本的には「一般的な構成」をmaster
持ち、(オブジェクト指向プログラミング用語で言うと)ブランチを継承します(ブランチも互いに継承できます)。
それとは別に、git
「チェリーピック」コミット(この場合は/ etc /への変更)のメカニズムは、特定の構成の一部だけが必要な場合に非常に役立ちました。
次に、いくつかのアイデアを紹介します。
- さらにパッケージマネージャーの統合が必要な場合は、おそらくこれにラッパースクリプトを使用します(現時点では必要ありません)。
- アップストリームバージョンをブランチとして扱うと
git
、でうまく動作します。master
- gitの無視リストは、リポジトリ内の.gitignoreファイルであるため、これはカバーされています。