多くのソースコードをgitに移行しており、現在のソリューションに非常に満足しています。サーバー構成ファイルを同じシステム上でバージョン管理したいと思いますが、希望どおりに動作しないものがいくつかありますので、ここで彼の経験を共有してください。
この質問は、サーバー構成ファイルのリビジョン管理の使用に似ていますか?、ただし、その質問に関する提案では機能しない特別な要件がいくつかあります。
現在のセットアップでは、構成ファイルにsubversionを使用しています。対応するリポジトリは次のようになります
/#リポジトリのルート +-www.domain.com/#wwwの構成 | \ - 等/ | \-apache2 / +-dev.domain.com/#devの構成 | +-etc / | \-opt / | \-app1 / | \-conf /#devのapp1の構成 \-staging.domain.com/#ステージングの構成
Subversionでは、リポジトリのサブディレクトリをチェックアウトするだけでよいため、これは問題なく機能します。さらに、svn:externalsを使用して、いくつかの異なる構成セットアップの1つの共通構造を指すことができます。バージョン管理されたすべてのディレクトリにある.svnファイルのみを処理する必要がありました。一方、Gitにはsvn:externalsがなく、スパースチェックアウトでは常にルートから実際のディレクトリへのパスが同じである必要があります。
gitへの移行について議論するとき、サーバー構成のバージョン管理の主な要件を書き留めようとしました。
- 単一のリポジトリのみが必要です
- 変更を中央のリモートに簡単にプッシュできる必要があります
- 変更セットには実際の著者が含まれている必要があります
すべての構成を1つのリポジトリに配置し、作業コピーとしてサブパスのみを使用する良い方法はありますか?現在、私は2つのアプローチを検討していますが、最初にここでこの質問をしたかったです
- 場合は.gitリポジトリが固定位置、例えば内のどこかにあるの/ var、我々は作業ディレクトリ「ターゲット」からサブパスにリンクすることも可能です。主な問題:単一のファイルのシンボリックリンクを除いて、コンテンツのみをインポートするために/ etcから別のディレクトリに「リンク」する方法を知りません
- 私はこのSOの質問に別の選択肢を見つけ、1つのリポジトリに複数のブランチを置くことを提案しました。これにより確かに複雑さが増しますが、この方法を試してみることができます。
構成ファイルの管理に1台のマシンでgitを使用することは問題なく機能しますが、使用したい方法でgitを使用している人がいるはずです。
ありがとう
カリーム
/
書き込み権限のためにリポジトリルートが必要な場合、2番目の要件(変更をプッシュバック)を実装することは困難です。