[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00554] Re: Synchronization ( Re: mhc-snap20000427.tar.gz )



乃村です。ちょっと席を外していました。

On Thu, 27 Apr 2000 13:28:13 +0900,
	TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx> said:

> 例えば、ホストAで削除されている変更に関して、ホストBで修正が行
> われている場合など、ホスト間で変更に矛盾をきたしている場合には
> 特に難しくなります。これだけの操作を、新規のスクリプトによって
> 提供するのは決して不可能ではありませんが、非常に難しいと思いま
> す。

今の実装では、このへんは基本的にはクリアしていると思います。コン
フリクトが起こったときの処置は、ポリシーの問題もあるので、現状で
いいかどうかは議論があるかもしれませんが、この延長上に解があるか
なというのが僕の印象です。

コンフリクト時の対処は、以下の通りです。

   D ... Delete
   M ... Remote
   - ... No change

                  Local
     +---+-----------------------+
   R |   | D       M      -      |
   e +---+-----------------------+
   m | D | --      競合   L消去  |
   o | M | 競合    競合   R->L   |
   t | - | R消去   L->R   --     |
   e +---+-----------------------+

(Local,Remote) の組が、

(D, M) のとき
  You modified #{rec_id} : #{r_sch .info} in remote.
  But you deleted it in local at the same time.
  I tranferred it from remote to local again.
  -> ローカルにもういっかいコピーしてきて、操作を促す。

(M, D) のとき
  You modified #{rec_id} : #{l_sch .info} in local.
  But you deleted it in remote at the same time.
  I preserve the local one.
  -> ローカルを preserve して、操作を促す。

(M, M) のとき
  You modified #{rec_id} : #{l_sch .info} in local.
  But you modified it in remote at the same time.
  I concatinate the remote one to the local one.
  Also, I preserved  the remote one.
  Please reedit the local one and do sync again.
  -> ローカルにリモートの内容を concat して、編集を促す。  

 #{sch.info} には、何年何月何日に初出の、何という Subject のアー
 ティクルかが入ります。

コンフリクトさせても、この程度の手当で比較的満足に動いてくれています。
mhc-fake.el については、次のメールで。
--
nom