ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   astah*への改善アイデア
     参照モデル機能の更新判断方法
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
redboltz
投稿日時: 2008-2-4 22:34
半人前
登録日: 2007-9-29
居住地:
投稿: 22
参照モデル機能の更新判断方法
現在、参照モデル機能を用いて作業分担を行っております。

リポジトリはSubversionを利用しており、バイナリファイルのため、
ロック機能を用いた運用をしております。

そこで、以下の問題にぶつかりました。

Judeは、参照先モデルのJudeファイルのタイムスタンプと、参照元で
そのファイルをいつマージしたかの情報を比較して、参照先モデルの
Judeファイルのタイムスタンプの方が新しければ更新が必要と判断します。

ところが、参照元と参照先それぞれをSubversionのリポジトリにコミットし、
別のところでチェックアウトすると、デフォルトでは、チェックアウトした
ファイルのタイムスタンプは、チェックアウトした時刻となります。

よって、再び、参照先モデルの更新が要求されます。
(実際には更新しても何も変わらないと思われます)

Subversionでは、チェックアウトしたファイルのタイムスタンプを、
チェックアウトした時刻ではなく、コミットした時刻にすることもできますが、
コミットするファイルがそもそも持っていたタイムスタンプにすることはできません。
#hookスクリプトを書けばできるかもしれませんが。

Subversionにおいて、この点に関しては昔議論が行われたようで、
通常のユースケースでは、チェックアウトの日付の方が便利である
といった結論に至った模様です。
#リビジョンを戻しても、makeがうまく動くなどの利点がある。
参考URL
http://svn.haxx.se/users/archive-2004-09/0894.shtml

ちなみに、CVS(TortoiseCVSにてデフォルト設定で確認)でも、
チェックアウトしたファイルのタイムスタンプはチェックアウトした時刻に
なりました。

これをふまえ、Judeの参照先モデルの更新を、ファイルのタイムスタンプに
依存せず、例えばJudeファイル内にLastModifiedといったフィールドを
(無ければ)設けて、それと比較するような対応が行われると、
万事うまくいくように思いますが、いかがでしょうか?

Subversionでのロック運用のため、チェックアウトのたびに、更新するのは、
なかなか容易では無い(更新の連鎖に対応するために、Jude-run.batを利用するため)
という事情もあり、対応頂けると助かります。

ご検討お願いいたします。
okamura
投稿日時: 2008-2-5 14:39
開発者
登録日: 2006-5-2
居住地:
投稿: 157
Re: 参照モデル機能の更新判断方法
redboltzさん、貴重な情報ありがとうございます。
確かにそういう問題があるのですね。Subversionとあわせた利用を提案しておいて、この問題には気づいておりませんでした。失礼いたしました。

なんらかの改善ができればと思いますが、近いバージョンでの対応は今のところ難しそうです。

ここでも課題として挙げられていて、議論がありますね。
http://subversion.tigris.org/issues/show_bug.cgi?id=1256
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を