化石CVを使用した一般的なコンポーネントの管理
-
02-10-2019 - |
質問
私は化石(およびCVS構成)初心者で、Delphiプロジェクトの分散化石リポジトリのセットを作成および管理しようとしています。
開発マシンに次のディレクトリツリーがあります。
Projects
Some Project
Delphi Components
LookupListView
Some Client
Some Project For Client
Some Other Project For Client
Source Code
Project Resources
Project Database
データベースプロジェクトのDelphi 2010ソースを含む、バージョンおよびプロジェクトクライアントクライアントソースコードの他のプロジェクトを共有するために、化石バージョン制御を設定しています。
このプロジェクトは、DelphiコンポーネントであるProjects Delphi Components LookuplistViewを使用しています。このコードをプロジェクトのバージョンシステムに含める必要があります。理論的には、将来的には他の化石リポジトリにも含める必要があります。
ソースコードまたはクライアントレベルのその他のプロジェクトで化石リポジトリを作成した場合、そのレベル以上のコードをリポジトリに追加することはできません。これに対処するための適切な方法は何ですか?私に発生する2つのソリューションはそうです
1)LookuplistView用の個別のリポジトリを作成し、このプロジェクトの現在のバージョンも取得しなければならないことを「知っている」プロジェクトにリポジトリを使用するすべての人を確認してください。これは、単一のチェックアウトでプロジェクトの完全な最新バージョンを取得できるという目的を打ち負かすようです。このプロジェクトには他の一般的なコンポーネント依存関係があるため、問題は拡大されます。
2)プロジェクトディレクトリに化石リポジトリを確立するため、さまざまなサブフォルダーからファイルを確認できます。これは、追加する際に非常に多くの余分なパスタイピングを伴うように思えます。また、リポジトリの他のユーザーにディレクトリ構造(クライアントクライアントの他のプロジェクト)を課すように思えます。実際のクライアント。
どんな提案も感謝しています。
解決
私はGitを使用していますが、私のアプローチはあなたの状況に適用できます。
すべてのコンポーネントフォルダーのリポジトリが1つあります。これにより、コンソールコマンドが少ないだけですべてを取得することができます(OSを再インストールしたり、別のコンピューターに移動した場合など)。
また、プロジェクトのそれぞれに1つのリポジトリがあります。一部のプロジェクトがサードパーティコントロールを使用している場合、「コンポーネント」サブフォルダーを作成し、シンボリックリンクを実行します(ジャンクション)セットされたすべてのコンポーネントの。
このアプローチにはいくつかの欠点があります(いくつかのプロジェクトの歴史に「戻る」場合、コンポーネントも変更できます。多くのプロジェクトが同じコンポーネントを使用している場合、これはいくつかの問題を引き起こす可能性があります)。しかし、私はまだ問題はありませんでした:)