もしくは特定のファイルをミラーリングするために、svn:externalsを使う。
たとえば、
Subversionのリポジトリ上で複数のプロジェクトを管理している。
後発のプロジェクトBが、先発のプロジェクトAと同一のリソースを常に配置したい。
そしてそのリソースはどちらのプロジェクトでも更新するし、
その反映は常に両方のプロジェクトに対して行われる。
というような状態を作りたい場合。
(そんなシチュエーション、開発の初期フェーズしか通用しないと思うけど。)
ディレクトリの参照設定
[例]
http://localhost/svn/projA/resources
を常にprojBからも参照する。
http://localhost/svn/projB/resources
#参照設定 作成 ~projB$ svn propset svn:externals 'resources http://localhost/svn/projA/resources' . property 'svn:externals' set on '.' ~projB$ svn up Fetching external item into 'resources' A foo A bar Updated external to revision 2. #参照設定 削除 ~projB$ svn propdel svn:externals ./resources
特定の1ファイルの参照設定
※ Subversion 1.6以降に限る。※ 参照関係を張ることができるのは、同一リポジトリ同士に限る
subversion.apache.org subversion1.6のチェンジログ中、svn:externalsについて記述した項。
svn:forum "svn:externals" 他リポジトリへのファイル参照設定できないんだけど、というフォーラム記事。
[例]
/repo/trunk/libA/resources/shared_file.txt
を
/repo/trunk/libB/resources/
にから参照設定する。
libB/resources$ svn propset svn:externals '^/repo/trunk/libA/resources/shared_file.txt shared_copy.txt' . libB/resources$ svn uplibB/resources/shared_copy.txtを編集してコミットすれば、libA/resources/shared_file.txt更新時に反映される。
逆に、libA/resrouces/shared_file.txtを編集してコミットすれば、libB/resources/shared_copy.txt更新により反映される。
0 件のコメント:
コメントを投稿