1

次の(望ましい)フォルダー構造があるとします。

*CommonProject
*Project#1
----> CommonProject(link)
*Project#2
----> CommonProject(link)

CommonProjectがそのプロジェクトに属するソースの場所であり、CommonProject(link)がメインの場所への単なるソフトリンクである場合。これをビジュアルクライアントのツリービューとして想像すると、Project#1を展開すると、ファイルが実際にはそこに保存されていなくても、CommonProjectがサブディレクトリとして表示されます。

これの目的は、次の動作を可能にすることです。

Project#1をチェックアウトすると、そのプロジェクトに関連付けられているファイルと、そのすべてのファイルを含むサブフォルダーCommonProjectが表示されます(Project#1にバージョン管理リポジトリ内のファイルのコピーが含まれているかのように)これで、Project#1内のCommonProjectのファイルを変更し、変更をリポジトリに送信すると、変更はCommonProjectの場所に送られます(実際には、リポジトリのProject#1の下にファイルはローカルに保存されません)。Project#2を同期する場合、CommonProjectへのシンボリックリンクも含まれているため、更新が取得されます。基本的に、ファイルの複製は私のマシンにのみ存在しますが、リポジトリにはCommonProjectのバージョンが1つしかありません。

私は、PERFORCEが3つの仕様を調整せずにこれを行うことができないことを知っています。これは非常に複雑でエラーが発生しやすく、特に多くの人がそれを行う場合に顕著です。これを実行できるソース管理リポジトリはありますか?(それを行う方法に関するいくつかのドキュメントへのポインタはプラスです)

ありがとうございました。

4

2 に答える 2

2

Subversionは、シンボリックリンクをリポジトリに直接保存できます。ただし、svnは他のファイルと同じようにシンボリックリンクを保存するため、これはシンボリックリンクをサポートするオペレーティングシステムでのみ機能します。

しかし、あなたが本当に望んでいるのは、別々のプロジェクトにリンクすることだと思います。Subversionは、外部モジュールを介してこれをサポートし、サブモジュールを介してgitをサポートします。もう1つの方法は、ビルドプロセスでこの種のことを管理して、ビルドを初期化するときに静的リソースが収集されるようにすることです。一般に、頻繁に変更されるユーティリティライブラリを更新すると、安定性の問題が発生するため、必要に応じて手動で(または巧妙なスクリプトを使用して)これを行うことができます。

于 2009-07-17T00:15:52.713 に答える
0

プロジェクトをフラットディレクトリ(プロジェクトごとに1つのディレクトリ、すべて同じレベル)に保存し、システムまたはIDEをビルドするものを使用して、すべてのものをリンクする方がはるかに良いでしょう。

于 2009-07-17T00:53:00.617 に答える