■ Top ■ CoC ■ Tips ■ Tools ■ Links

外部参照している先のリポジトリの外部参照のリヴィジョン指定
シェア
Description
svnでタグを切る場合などに、外部参照のリヴィジョンを固定することがあります。
しかし、外部参照しているリポジトリ側にも外部参照がある場合、その外部参照には
リヴィジョン指定がされていないので、タグを更新すると、外部参照の先の外部参照が
更新されてしまい、スナップショットになりません。
この問題を回避して、外部参照先の外部参照のリヴィジョンを固定する方法を紹介します。

Solution
(例)以下のtargetフォルダのタグを切る場合で説明します。
※固定するdefのリヴィジョンは1r00、jklのリヴィジョンはr200とします
target
├─ abc
├─ def (externals)
└─ ghi

def
├─ jkl (externals)
└─ mno

まず、defをr100で外部参照するために、targetフォルダには以下の属性を付けます。
svn:externals -r 100 http://XXX_url_of_def_XXX/XXX/def def

この状態では、defフォルダ自体はr100で固定されますが、defで参照しているjklフォルダはリヴィジョンが更新されてしまいます。
defの開発は進むわけですから、defフォルダのjklへの外部参照にリヴィジョンを指定するわけにいきません。

そこで、targetフォルダに以下の属性を付けます。
svn:externals -r 200 http://XXX_url_of_jkl_XXX/XXX/jkl def/jkl

これにより、targetフォルダを更新すると、以下の順で更新されます。
1)targetからdefをr100で更新する
2)defからjklを最新リヴィジョンで更新する
3)targetからjklをr200で更新する

2)で一瞬最新リヴィジョンに更新されますが、3)でr200に戻るわけです。
ファイルの更新日時は更新されてしまいますが、結果としてリヴィジョンは固定されます。

【楽天で購入】