私はほぼ 2 年前に新しい仕事を始めましたが、SVN リポジトリ プロセスは既に存在していました。SVN を利用してコードベースを管理するための最善の前向きな方法についてあまり考えられなかったので、そのプロセスがこのようなものになりました。今、私たちはこれ以上成長する前に変化を起こさなければならない状況にあります。私たちは、ニーズに合った SVN を使用するためのより良い方法を探しています。
- すべてのクライアント コードがその上に置かれ、1 つのリポジトリで管理されるベース フレームワークがあります。
- また、すべてのカスタム perl モジュールを管理するリポジトリと、ベース フレームワークのすべてのスキンを管理するリポジトリもあります。
- 次に、顧客のビジネス ユニットごとにリポジトリがあります。
/var/www、/usr/local、/opt ディレクトリとそのサブディレクトリで重複することがある、これらすべてのリポジトリにまたがるコードがあります。
これまでは、サーバーの作業領域 ( /var/www、/opt、/usr ) で変更を行い、すべての変更とそのディレクトリ構造をホーム ディレクトリの作業コピーに移動することでこれを管理してきました。これらのファイルに対して svn 操作を実行できます。
サーバーのルートを介してリポジトリをチェックアウトする実験をいくつか行いましたが、すべての svn 操作を sudo する必要があります。もう 1 つの懸念は、repository-for-customer-a に切り替えてベース フレームワークに変更を加える必要がある場合、それらの変更は追跡されるのでしょうか? それらは、repository-for-customer-a の svn stat に含まれますか? または、SVN コミットを行うと、サーバーは一度に両方のリポジトリにファイルをコミットしますか?
私たちが行っている方法で SVN を管理することは完全に非効率的であり、修正/変更に不可欠なファイルが失われることが多く、コードをトランクにマージする際に SVN の分岐/マージするので、ゲートキーパーの仕事が増えます。私たちのプロセスには多くのオーバーヘッドがありますが、SVN を意図したとおりに活用する方法を理解できれば、ここで取り除くことができます。
私が Stack Overflow に参加したのは、ここの形式とコミュニティを大いに尊重しているからです。どんなアドバイスでも大歓迎です!