1

現在、ソース管理に VSS を使用していますが、別のシステムに変換したいと考えています。VSS を使用すると、異なるプロジェクト間で単一のファイルを共有できます。一般的な SCM システムの中でのみ (?)、SVN もこの機能を提供しているようです (svn:externals)。その他は、共有フォルダーのみを有効にします。そのため、SVN は、リポジトリを共有するように調整するためにリポジトリ内のすべてのプロジェクトの構造を再設計するよりもおそらくはるかに簡単であるため、リポジトリを変換する候補です。

ただし、SVN の外部ファイルは指定されたファイル リビジョンにバインドする必要があります (外部ファイルをヘッド リビジョンにバインドする可能性は考慮したくありません。その方法では、適切な外部ファイルを含む過去のプロジェクト バージョンを取得することは不可能だからです)。そうすれば、共有ファイルが変更されても、そのファイルを外部ファイルとして使用するプロジェクトには影響しません。

そのため、そのようなプロジェクトの 1 つをそのヘッド リビジョンでダウンロードすると、変更された外部の最新リビジョンを取得できません。そのファイルを更新するには、そのファイルを参照する externals プロパティを手動で変更する必要があります。同様のシナリオで、VSS は、現在のリビジョンでプロジェクトを取得するときに、ヘッド リビジョン (共有されているものを含む) のすべてのファイルを提供します。

SVNを同様に機能させる方法を考えています。リポジトリからプロジェクトのヘッド バージョンを取得するとき、関連付けられているすべての外部もそれらのヘッド リビジョンで取得したいと考えています。しかし、私は立ち往生しており、直接的または間接的にそれを達成する方法がわかりません.

多分いくつかのスクリプト?しかし、それらは何をしなければならず、いつ実行する必要があるのでしょうか? ファイルが変更されたときに、共有ファイルを使用するプロジェクトのすべての外部プロパティを更新する必要がありますか? それとも、プロジェクトをダウンロードした直後に実行して、その外部を更新する必要がありますか?

良い解決策につながる可能性のあるアイデアには本当に感謝しています。どうもありがとう!

4

1 に答える 1

2

これはあなたが探している答えです:

find . -name .svn -execdir svn update -r {2010-08-30} \;

(クレジット: https://stackoverflow.com/a/3608453/1284631 )

于 2012-12-23T21:44:03.793 に答える